最近在用VS编译Qt项目时,为rc资源文件添加了版本信息后就编译不通过了,编译输出提示错误:
error RC2144: PRIMARY LANGUAGE ID not a number
在网上搜索后发现大多数的解决方法是在rc文件中添加如下一行include语句:
#include "winres.h"
这么做确实能解决error RC2144的问题。但问题是,VS的rc文件其实是无法手动修改的,因为手动修改后,只要使用VS的“资源视图”修改了资源文件,则手动的改动会被改回去,又会出现error RC2144的问题,如果在每次修改了资源后手动添加inclue语句那就太麻烦的。
其实这个问题正确的解决办法是这样的:
按Ctrl+Shift+E打开“资源视图”,展开资源文件所在的项目,在资源文件上点击鼠标右键,选择“资源包括”命令。如下图所示:
在弹出的“资源包括”对话框中的“只读符号指令”中添加:
#include "winres.h"
如下图所示:
点击确定后,再生成项目,就不再出现error RC2144错误了。
此时可以发现rc文件中多出来了以下几行代码:
#define APSTUDIO_READONLY_SYMBOLS
/
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "winres.h"
/
#undef APSTUDIO_READONLY_SYMBOLS