【问题标题】:Macro alternative to _T("char") or _TEXT("char")_T("char") 或 _TEXT("char") 的宏替代
【发布时间】:2014-03-22 10:05:39
【问题描述】:

我知道 _T(x) 宏将字符串文字转换为 unicode/多字节 基于定义的字符串,但是我发现我必须制作一个非常烦人 下划线和括号,这真的让我很困惑,我不是很流利 宏,所以我不知道,有没有办法检测所有字符串文字并转换 将它们转换为正确的 unicode/多字节字符串?

【问题讨论】:

  • Unicode?多字节?放弃 C 并使用 Python :)
  • 别打扰,a char literal is an int。所以没关系。
  • 使用 L 作为你的文字,因为我不敢相信你正在为 Win98 构建

标签: c winapi tchar


【解决方案1】:

不,如果您希望代码在 Windows 上可移植,没有办法完全避免使用宏。如果您想节省一些击键次数,您当然可以定义自己的宏,例如 #define t(x) whatever_T_does,但这可能会激怒您代码的未来维护者。

【讨论】:

    【解决方案2】:

    _T()_TEXT() 是 C 运行时宏,而不是 Win32 宏。 TEXT()(无下划线)是 Win32 宏。即使它们本质上做同样的事情,您也应该只将 C 运行时宏与 C 函数一起使用,而将 Win32 宏与 Win32 函数一起使用。不要混合它们。

    【讨论】:

      【解决方案3】:

      您真的需要为多字节和 Unicode 编译的能力吗?如果你想要多字节,你不需要任何宏。在 Unicode 应用程序中,使用 L"literal string" 更容易,它不需要下划线或括号。

      【讨论】:

        猜你喜欢
        • 2019-09-04
        • 2015-06-13
        • 2010-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多