6

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

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

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

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

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

4

1 回答 1

4

答案是:您应该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
于 2013-10-11T11:20:38.117 回答