我正在为项目创建GUI,我需要知道如何将TEXT宏与变量一起使用。
这是我用于打印到UI的内容:
SendMessage(console, EM_SETSEL, -1, 0);
SendMessage(console, EM_REPLACESEL, 0, (LPARAM)TEXT(message));
"消息"是一个字符串变量。我也用chars尝试过,但那仍然是错误。
我得到的错误:Lmessage未定义
任何帮助将不胜感激,谢谢!
答案 0 :(得分:4)
TEXT
是一个宏,取决于其他宏(更具体地说,UNICODE
)可以在宏的参数中添加前导L
。
所以,例如TEXT("Foo")
变为L"Foo"
,这是一个宽字符(wchar_t
)字符串。
将前导L
添加到变量当然不会使变量宽字符的内容,它所做的一切基本上都是重命名变量,如您的代码TEXT(message)
所示变为Lmessage
。
简而言之,您只应 将其用于文字字符串。
答案 1 :(得分:1)
TEXT()
宏仅适用于编译时文字,而不适用于变量。如果message
是ANSI字符串,并且您需要将其作为Unicode字符串发送,反之亦然,那么您必须使用MultiByteToWideChar()
/ WideCharToMultiByte()
或等效项在运行时执行转换。