编译生成可能遇到的问题
[1]fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突
原因:win7下的64位系统,在运行程序的时候,需要的DLL必须是64位系统编译的,VS2010也必须在安装的时候,选择了32位编译的支持。如果安装的时候,已经选择了,那么出现该问题的解决办法:
(1)右键项目名,点击属性,弹出项目属性页,找到链接器----高级,修改右侧的目标计算机,选择有X64的那个选项。
(2)右键项目名,选择清理解决方案,清理完之后选择X64平台编译器,然后重新生成解决方案,便可以调试成功。选择X64平台编译器如下图:
如果如果在选择平台的下拉列表里找不到x64,则说明系统没有安装支持64位编译,则可以找VS安装文件进行增量安装。
[2]fatalerrorLNK1123:转换到COFF期间失败:文件无效或损坏
安装多个VS版本会 出现这个问题,解决方法一般如下:
a)微软官方给出的具体解决方法是给VS2010打SP1补丁,安装完重新生成,如果不行,试下一方法。
b)微软官方的另一个解决方案:发现是嵌入清单的问题,于是对该工程以及所有依赖工程进行如下操作:
右键->工程属性->配置属性-> 清单工具->输入和输出->嵌入清单,选择[否]。rebuild 之,成功解决。
错误: 无法生成一个 Microsoft 基础类的应用程序后添加新的资源文件,其中包含一个字符串表
症状
在 Visual C++.NET 中,Microsoft 基础类 (MFC) 应用程序可以有多个资源 (.rc) 文件。但是,当您添加新的资源文件,其中包含一个字符串表,然后尝试生成项目或保存资源文件时,您会收到以下错误消息:
"资源数据是无效的。
无法保存资源脚本。
在新的资源文件的字符串表中添加新的字符串项,然后尝试重新生成该项目时可能会收到以下错误消息:
"致命的错误 CVT1100: 重复的资源。类型: 字符串、 名称: 7、 语言: 0x0409"
"致命错误 LNK1123: 转换到 COFF 期间失败: 文件无效或损坏"
原因
第一个错误发生的原因的新的资源文件的字符串表中是没有字符串项。
如果现有的资源文件和新的资源的字符串表中的 Id 文件冲突,可能会收到第二个错误消息。资源编译器编译字符串表,它保留一组 16 Id。例如,如果在字符串表中的第一个资源文件使用 ID 为 100,而 ID 110 用于在字符串表中的第二个资源文件,将发生冲突。
解决方案
要变通解决此问题,请按照下列步骤操作:
添加新的资源文件的字符串表中的字符串项。
为了避免冲突,请使用 Id 过于接近彼此不同的资源文件的 MFC 项目中的字符串。例如,如果一个资源文件中包含的字符串 ID 为 100,不要使用 ID 值范围 100 至 115 中同一 MFC 项目的其他资源文件中。
新闻热点
疑难解答