1
所以我剛開始使用C++,所以我對它很陌生,現在我知道大部分基本的東西。然而,我已經無意中發現了我從項目1複製到項目2的代碼的問題,他們現在是IDENTICAL,除了項目2包含「錯誤」...C++基礎知識(使用其他方法的相同代碼(unicode?))
那麼,爲什麼我要啓動C++?工作要求我創建一個憑據提供商,你無法在互聯網上找到任何好的信息BTW ...
無論如何,我將代碼複製到一個新的項目中,但我有錯誤, 我已複製:
StringCchCopyN(pszDomain, lenDomain + 1, pchDomainBegin, lenDomain);
但項目1是使用:
STRSAFEAPI StringCchCopyNW(
_Out_writes_(cchDest) _Always_(_Post_z_) STRSAFE_LPWSTR pszDest,
_In_ size_t cchDest,
_In_reads_or_z_(cchToCopy) STRSAFE_PCNZWCH pszSrc,
_In_ size_t cchToCopy)
和項目2使用的是:
STRSAFEAPI StringCchCopyNA(
_Out_writes_(cchDest) _Always_(_Post_z_) STRSAFE_LPSTR pszDest,
_In_ size_t cchDest,
_In_reads_or_z_(cchToCopy) STRSAFE_PCNZCH pszSrc,
_In_ size_t cchToCopy)
那麼,爲什麼項目1使用NW功能和項目2使用NA函數,我做了一些小的研究:
#ifdef UNICODE
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
#define StringCchCopyN StringCchCopyNW
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#else
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#define StringCchCopyN StringCchCopyNA
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif // !UNICODE
但我不知道爲什麼項目1採用UNICODE和項目2是不是...就像我所說的,至少這些項目是IDENTICAL,這就是我的想法。