【问题标题】:Defaut Character Set 'Unicode' in Visual Studio 2005Visual Studio 2005 中的默认字符集“Unicode”
【发布时间】:2011-02-01 19:10:10
【问题描述】:

这是否意味着我正在为 x64 操作系统编写 64 位代码?

【问题讨论】:

    标签: c++ visual-studio-2005 windows-xp x86


    【解决方案1】:

    没有。这意味着 TCHAR 映射到 wchar_t 并且所有采用 TCHARLPTSTR 参数的函数都映射到它们的 Unicode 变体。例如CreateWindow 映射到CreateWindowW 而不是CreateWindowA

    这与 CPU 架构完全无关。您可以为 32 位或 64 位平台编写 Unicode 和多字节程序。

    如果要为 x64 构建,则需要在配置管理器中添加另一个平台。这是来自 Microsoft 的 how-to

    【讨论】:

    • 我可以在不设置字符编码的情况下明确使用 CreateWindowW 吗?
    • 是的,@User。您可以显式调用您想要的任何函数。 IDE 设置及其定义的宏仅控制您在未指定任何其他内容时获得的 默认 API 模式。
    • 是的。但是TCHAR 子系统旨在使charwchar_t 之间的切换几乎无缝。仍然可以在一个应用程序中以任意比例混合*A*W
    • 如果谈论_UNICODE 宏,您的答案是正确的,但这听起来像是 IDE 中的设置,用于决定 源文件 存储在哪个字符集中。 ..(UTF-8 或一些本地语言环境/代码页)
    【解决方案2】:

    没有。 Unicode 是一种字符编码,而不是 CPU 位数的度量。您可以不使用 Unicode 编写 64 位代码,也可以在使用 Unicode 的同时编写 32 位代码。两者都不需要另一个。如果需要,您可以同时使用两者。你也可以不使用。

    【讨论】:

    • 我支持这个答案。本质上,字符编码和机器字长之间没有联系。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-24
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 2021-08-03
    相关资源
    最近更新 更多