在我的应用程序中,我想将版本ID添加为宏,并在应用程序的多个部分中使用它。如this question中所述,我可以轻松地生成一个字符串:
#define APP_VER "1.0"
#define APP_CAPTION "Stackoverflow example app v." ## APP_VER
我现在的问题是,在某些部分,我需要将标题作为unicode字符串。
我尝试了以下内容:
MessageBoxW(0,_T(APP_CAPTION),L"Minimal Counterexample",0);
但它给出了错误“无法关注广泛的'Stackoverflow示例应用v。'狭窄的'1.0'“
我也试过
#define WIDE_CAPTION L ## APP_CAPTION
但这只是“LAPP_CAPTION”未定义。
我知道我可以在运行时将字符串转换为unicode,但这很麻烦。有人可以为我的问题提供宏级解决方案吗?
答案 0 :(得分:2)
你只想:
#define APP_CAPTION "Stackoverflow example app v." APP_VER
由于APP_VER
已经是一个字符串。
字符串连接是免费的,例如:
const char *str = "hello " "world"
完整的可编辑示例:
#include <iostream>
#define APP_VER "1.0"
#define APP_CAPTION "Stackoverflow example app v." APP_VER
int main() {
std::cout << APP_CAPTION << "\n";
return 0;
}