错误RC2104:未定义的关键字或密钥名称:WS_EX_LAYOUTRTL

时间:2013-10-10 13:52:51

标签: winapi resources

我在VS 2012中设计了一个RTL对话框,我偶然发现了以下错误:

  

错误RC2104:未定义的关键字或密钥名称:WS_EX_LAYOUTRTL

谷歌搜索结果为零,这是非常罕见的。

任何想法是什么问题以及如何解决?

在.rc对话框中定义WS_EX_LAYOUTRTL修复它,以及用0x00400000L替换WS_EX_LAYOUTRTL,但当然这些解决方案不能正常工作,因为.rc文件是自动生成的,并且更改会丢失。

1 个答案:

答案 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