我在VS 2012中设计了一个RTL对话框,我偶然发现了以下错误:
错误RC2104:未定义的关键字或密钥名称:WS_EX_LAYOUTRTL
谷歌搜索结果为零,这是非常罕见的。
任何想法是什么问题以及如何解决?
在.rc对话框中定义WS_EX_LAYOUTRTL修复它,以及用0x00400000L替换WS_EX_LAYOUTRTL,但当然这些解决方案不能正常工作,因为.rc文件是自动生成的,并且更改会丢失。
答案 0 :(得分:4)
答案是:您应该在.rc文件中定义适当的WINVER
值。由于.rc文件是由资源编辑器自动生成的,因此您无法在任何地方定义它,因为它将被覆盖。您可以使用the TEXTINCLUDE
section来阻止它被覆盖。
示例(第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