gpt4 book ai didi

c++ - 如何在编译时将组合文字常量转换为 wchar?

转载 作者:搜寻专家 更新时间:2023-10-31 02:15:46 27 4
gpt4 key购买 nike

我在预处理器宏中定义了一个组合文字常量,例如

#define A "1"
#define B "3"
#define VERSION A "." B

最终我想稍后使用 _T 宏将其转换为 wchar_t *,例如:

TCHAR * version = _T(VERSION);

但是它无法使用 Visual Studio 2013 运行时进行编译,并出现以下错误:

concatenating mismatched strings

它似乎在较新的版本中得到修复,并且使用 VS2015 运行时可以毫无问题地编译以上代码。

有什么想法可以让它与 VS2013 运行时一起工作吗?

最佳答案

它们都需要宽或窄,试试:

#define A L"1"
#define B L"3"
#define VERSION A L"." B

const wchar_t * version = VERSION;

或者

#define A "1"
#define B "3"
#define VERSION A "." B

const char * version = VERSION;

编辑:这个回答评论

#define A "1"
#define B "3"
#define VERSION A "." B

#define EXPAND(x) _T(##x)
#define TO_WIDE(x) (EXPAND(x))

const wchar_t * version = TO_WIDE(VERSION);

关于c++ - 如何在编译时将组合文字常量转换为 wchar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38123418/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com