更改语言时VS 2008资源类型错误

时间:2013-09-16 15:27:43

标签: windows winapi visual-c++ mfc

在我的visual studio项目中将资源元素的语言从英语更改为阿塞拜疆时,我收到此错误:

  

错误RC2144:PRIMARY LANGUAGE ID不是数字

,那一行是:

LANGUAGE LANG_AZERI_CYRILLIC, SUBLANG_AZERI_CYRILLIC

这里发生了什么?

// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#include <windows.h>
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#ifndef APSTUDIO_INVOKED
#include "targetver.h"
#endif
#include "winres.h"

4 个答案:

答案 0 :(得分:2)

只需将#include <windows.h>添加到您的resources.rc文件中 - 如下所述:

http://mattshaw.org/news/fix-for-error-rc2144-primary-language-id-not-a-number/

这很蹩脚,我知道。

答案 1 :(得分:2)

错误是因为资源设计者使用 winres.h 中定义的常量(语言ID),但 winres.h 未包含在资源文件中。< / p>

将此行添加到resource.rc(以文本形式查看代码,而不是从对话框编辑器中查看),这将解决问题:

#define APSTUDIO_READONLY_SYMBOLS
#include <winres.h>
#undef APSTUDIO_READONLY_SYMBOLS

P.S:您还需要定义 APSTUDIO_READONLY_SYMBOLS 以保持包含winres.h,因为Visual Studio将始终不断删除 #include

答案 2 :(得分:1)

解决方案是将资源文件中的行LANGUAGE LANG_AZERI_CYRILLIC, SUBLANG_AZERI_CYRILLIC更改为定义hereLANGUAGE LANG_AZERI, SUBLANG_AZERI_CYRILLIC。 似乎visual studio错误地生成了代码。

答案 3 :(得分:0)

使用Visual Studio 2015编辑资源时,这些行始终被覆盖。 要在Visual Studio 2015中添加此内容,请执行以下操作:

  1. 转到“资源视图” Ctrl + Shift + E
  2. 右键单击resource.rc文件,然后选择resourceincludes
  3. 添加到写保护符号:

    #include“ winres.h”