我正在 VS 2012 中设计一个 RTL 对话框,我偶然发现了以下错误:
错误 RC2104:未定义的关键字或键名:WS_EX_LAYOUTRTL
谷歌搜索结果为零,这是非常罕见的。
任何想法是什么问题以及如何解决?
在 .rc 对话框中定义 WS_EX_LAYOUTRTL 可以修复它,以及将 WS_EX_LAYOUTRTL 替换为 0x00400000L,但是这些解决方案当然不会真正起作用,因为 .rc 文件是自动生成的并且更改会丢失。
答案是:您应该WINVER
在 .rc 文件中定义适当的值。由于 .rc 文件是由资源编辑器自动生成的,因此您不能在任何地方定义它,因为它会被覆盖。您可以使用该TEXTINCLUDE
部分来防止它被覆盖。
示例(第 5 行):
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#define WINVER 0x0500 // <-- ADDED
#include "afxres.h"
并且(第 3 行):
2 TEXTINCLUDE
BEGIN
"#define WINVER 0x0500 // <-- ADDED\r\n"
"#include ""afxres.h""\r\n"
"\0"
END