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

Pau*_*aul 6 resources winapi

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

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

谷歌搜索它没有结果,这是非常罕见的.

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

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

Pau*_*aul 4

答案是:您应该WINVER在 .rc 文件中定义适当的值。由于 .rc 文件是由资源编辑器自动生成的,因此您不能在任何地方定义它,因为它会被覆盖。您可以使用TEXTINCLUDE部分来防止它被覆盖。

示例(第 5 行):

/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#define WINVER 0x0500 // <-- ADDED
#include "afxres.h"
Run Code Online (Sandbox Code Playgroud)

并且(第 3 行):

2 TEXTINCLUDE 
BEGIN
    "#define WINVER 0x0500 // <-- ADDED\r\n"
    "#include ""afxres.h""\r\n"
    "\0"
END
Run Code Online (Sandbox Code Playgroud)