由于RC文件的UTF-8编码,在C++项目中出现RC2135错误

Ren*_*Pet 6 c++ resource-files rc

从Visual Studio 2010切换到2012后,我得到了10个RC2135错误,在我的一个C++项目中看起来很奇怪.

Error   1   error RC2135: file not found: 0x06        NamedPipesNative.rc   19  1   NamedPipesNative
Error   2   error RC2135: file not found: 1           NamedPipesNative.rc   28  1   NamedPipesNative
Error   3   error RC2135: file not found: 5           NamedPipesNative.rc   29  1   NamedPipesNative
Error   4   error RC2135: file not found: 5           NamedPipesNative.rc   30  1   NamedPipesNative
Error   5   error RC2135: file not found: 0x17L       NamedPipesNative.rc   31  1   NamedPipesNative
Error   6   error RC2135: file not found: FILEOS      NamedPipesNative.rc   37  1   NamedPipesNative
Error   7   error RC2135: file not found: 0x2L        NamedPipesNative.rc   38  1   NamedPipesNative
Error   8   error RC2164: unexpected value in RCDATA  NamedPipesNative.rc   41  1   NamedPipesNative
Error   9   error RC2135: file not found: BLOCK       NamedPipesNative.rc   43  1   NamedPipesNative
Error   10  error RC2135: file not found: VALUE       NamedPipesNative.rc   45  1   NamedPipesNative
Run Code Online (Sandbox Code Playgroud)

不幸的是我认为这与切换到VS 2012有关(它曾经问过我是否想要转换C++项目),而且我花了很多时间试图根据这个假设弄明白.但实际上它完全不同.为了帮助遇到这个问题的其他人,我马上就会发布答案.

Ren*_*Pet 11

作为切换到Visual Studio 2012的一部分,我还使用自制的程序更新了.rc文件中的程序版本号,该程序处理了我的所有AssemblyInfo.cs和.rc文件,并且它已经改变了编码.从ANSI到UTF-8的rc文件.并且Microsoft资源编译器无法正确读取UTF-8文件! http://social.msdn.microsoft.com/Forums/hu-HU/vcgeneral/thread/e212069d-678e-4ac8-957f-7d60d3e1c89f

所以解决方案是将.rc文件重新编码为ANSI或UTF-16.