在我的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"
答案 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
更改为定义here的LANGUAGE LANG_AZERI, SUBLANG_AZERI_CYRILLIC
。
似乎visual studio错误地生成了代码。
答案 3 :(得分:0)
使用Visual Studio 2015编辑资源时,这些行始终被覆盖。 要在Visual Studio 2015中添加此内容,请执行以下操作:
添加到写保护符号:
#include“ winres.h”