【发布时间】:2018-08-31 10:27:45
【问题描述】:
我正在使用 winapi 编写一个 win32 应用程序 我想在我的资源文件中连接一个字符串,并将搅拌作为它应该显示的字符串给我的菜单项。 当我想把它交给一个控件时,它就像一个魅力,但是当我想要 将它用于 menuItem 我收到一条错误消息。这可能是因为预处理器没有将连接视为字符串?
有人知道我可以尝试什么吗? 我试图关注类似的帖子 - 但它给了我相同的结果......
其他帖子:
Concatenate string and constant in resource file in C++ (MFC)
Concate define and string in resources
C/C++ Macro string concatenation
当我遵循这些答案时,大多数时候我得到“ID_ABOUT_STR”作为我的输出而不是它的值......否则我得到了错误......
我希望问题很清楚,并提前感谢您的努力:)
.rc 文件:
IDR_MENU1 MENU
BEGIN
POPUP L"System"
BEGIN
MENUITEM ID_EXIT_STR, ID_SYSTEM_EXIT
MENUITEM SEPARATOR
MENUITEM ID_ABOUT_STR, ID_SYSTEM_ABOUT //here i want to give it the ID_ABOUT_STR which is in the resource file...
END
END
resource.h : VER_PRODUCTNAME_STR 和另一个也只包含字符串
#define ID_ABOUT_STR L"About" VER_PRODUCTNAME_STR L" " VER_FILE_DESCRIPTION_STR
这是我得到的错误:
Error RC2122 unknown menu subtype PRO-PRODUCITON C:\XXX.rc 195
Error RC2125 expected ID value for menu item PRO-PRODUCITON C:\XXX.rc 195
【问题讨论】:
-
RC 编译器与 C 预处理器有相似之处,但它不使用它;它有自己的规则,IIRC 它不进行字符串连接。请参阅 cmets 至:blogs.msdn.microsoft.com/oldnewthing/20171004-00/?p=97126 了解可能的解决方法
标签: c++ winapi menuitem string-concatenation resource-files