所以我刚刚开始使用C++,所以我对它非常陌生,我现在知道了大部分基本知识。然而,我无意中发现了从项目1复制到项目2的代码问题,它们现在是相同的,除了项目2包含“错误”.
那么我为什么要启动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没有.就像我说的,这些项目是相同的,至少,我是这么想的。
发布于 2017-02-15 08:42:00
这是因为project1在项目级别有_UNICODE定义(检查项目属性)。因此,在_UNICODE属性中定义project2。
下面是操作步骤:
https://stackoverflow.com/questions/42244326
复制相似问题