首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++基础(使用其他方法的相同代码(unicode?))

C++基础(使用其他方法的相同代码(unicode?))
EN

Stack Overflow用户
提问于 2017-02-15 08:37:53
回答 1查看 97关注 0票数 1

所以我刚刚开始使用C++,所以我对它非常陌生,我现在知道了大部分基本知识。然而,我无意中发现了从项目1复制到项目2的代码问题,它们现在是相同的,除了项目2包含“错误”.

那么我为什么要启动C++呢?工作要求我创建一个证书提供者,你找不到任何良好的信息在互联网BTW.

无论如何,我将代码复制到一个新的项目中,但是我有错误,我复制了:

代码语言:javascript
复制
StringCchCopyN(pszDomain, lenDomain + 1, pchDomainBegin, lenDomain);

但项目1使用的是:

代码语言:javascript
复制
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使用:

代码语言:javascript
复制
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函数,我做了一些小的研究:

代码语言:javascript
复制
#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没有.就像我说的,这些项目是相同的,至少,我是这么想的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-15 08:42:00

这是因为project1在项目级别有_UNICODE定义(检查项目属性)。因此,在_UNICODE属性中定义project2。

下面是操作步骤:

  1. 右键单击项目>属性
  2. 配置属性>一般属性
  3. 项目默认值>字符集
  4. 更改“使用多字节字符集”>“使用Unicode字符集”
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42244326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档