Итак, я только что начал C++, поэтому я очень новичок в этом, теперь я знаю большинство основных вещей. Тем не менее, я наткнулся на проблему с кодом, который я скопировал из проекта 1 в проект 2, теперь они ИДЕНТИФИКАЦИЯ, за исключением того, что проект 2 содержит «ошибки» ...Основы C++ (тот же код с использованием другого метода (unicode?))
Так почему я начал C++? Работа попросила меня создать Credential Provider, который вы не можете найти в Интернете. BTL ...
В любом случае, я скопировал код в новый проект, и все же у меня есть ошибки, Я скопировал :
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 и проект-не ... Как я уже сказал, проекты ИДЕНТИЧНЫЕ, по крайней мере, это то, что я думаю.