MFC发布软件出现的问题

资源文件冲突error RC2151 : cannot reuse string constants, 61446(0xF006) - "****" already defined. Cannot add 61446(0xF006) - "一未命名文件".

今天在编写项目的时候,我通常会用动态加载链接库的方式编译程序,这样编译得到的程序会比较精简一些,昨天,由于要将程序拿出来用于演示,对方电脑没装VC,所以我在工程选项中将动态加载的方式改成静态加载。没想到的是,重新编译后VC竟然报错如下: error RC2151 : cannot reuse string constants, 61446(0xF006) - "****" already defined. Cannot add 61446(0xF006) - "一未命名文件".

后来在微软的官网上找到了答案,这种问题常出现在利用VC的资源编辑器添加的字符串资源,而又碰巧,VC将资源ID定为了61446,这样在发布的时候,使用Release版本,而静态加载链接库编译时,MFC中afxres.h中61446已被使用过,就出现了同一ID被两次使用。解决的方法很简单,将自己写的那段资源ID改成比61446大些问题就解决了。

 

首先,打开工程文件夹。然后,用记事本打开“resource.h”文件,找到IDB_BITMAP1(或者61446,并记下它前面的IDB_******),并把它改为新数字号,我修改的是61447。然后,用记事本打开“工程名.rc”文件,找到IDB_******,并把它改为新ID号(我修改的是61447)。打开VC,把程序中的IDB_******改为新ID号(我修改的是61447),并保存。编译,运行即可。

打开VC: vc界面view->ID Resource Symbols 双击你要修改的资源ID,然后可以修改名字跟编号,再点确定就OK了!


但是这个问题解决了,又出现了些新的问题

fatal error C1010: unexpected end of file while looking for precompiled header directive

但是我在编译的时候又没有出现这个问题的呀,软件可以运行,不知为什么发布的时候就不行了。

问题先留着里。。我再去找找解决方法

解决办法:

致命错误C1010:在寻找预编译指示头文件时,文件未预期结束。
  就是没有找到预编译指示信息的头文件。
  问题一般发生在:通过添加文件的方式,添加了一些cpp文件到一个MFC的程序,但该cpp文件并不是MFC,而是标准的C++。 
  解决方案1: 右键单击项目工程中的cpp文件,在菜单Project->Settings->C/C++->Precompile Header,设置为第一项:Not using precompile headers。
  解决方案2:在.cpp文件开头添加包含文件stdafx.h。 #include"stdafx.h"



链接:http://www.cnblogs.com/love3c/archive/2013/02/25/2932536.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值