BCGControllBar下设计Office 2007风格时,DEBUG+STATIC状态下的错误提示解决办法.

如下图所示,

编译的环境是:VS2008 SP1

使用静态MFC+BCGControlBar12静态Debug库,使用动态链接库时,问题并不存在。

 

这说明和使用静态库有关,原来静态库中默认是没有包含相关的资源的,MY GOD!!

 

跟踪调试,发现烦人的错误是提示是因为:

#define IDB_BCGBARRES_RIBBON_PRINT_LARGE 17089
#define IDB_BCGBARRES_RIBBON_PRINT_SMALL 17090

这两个资源定义在BCGCBPro.rc中,这两个资源不能被正确的加载。

 

知道问题的原因,剩下来就是解决办法,在尝试过程中,使用过以下几种办法

方法一:在自己的工程中增加这两个ID的图片,将原图片从BCGControlBar中拷贝过来;经测试方法可行,但不爽。

 

方法二:将BCGCBPro.rc文件加到本工程中来,参考:

但加进来后会报:

1>CVTRES : fatal error CVT1100: duplicate resource.  type:STRING, name:3841, language:0x0409
1>LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt

暂时不太可行,提示信息不明确,不易解决。

 

方法三:在网上搜索方法,结果找到这篇文章,貌似可以解决问题:

http://blog.163.com/long_lh/blog/static/27693480200792211541503/

捣咕了半天,没结果,仍然报错。虽然思路是对的,但Resource Includes对话框老是改我的Resouces.h文件,非常危险!!

 

最终方案:

打开项目的rc文件,在最后面有一段#include,

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE 9, 1
#pragma code_page(936)
#include "res/RibbonDemo.rc2"  // non-Microsoft Visual C++ edited resources
#include "afxres.rc"         // Standard components
#include "afxprint.rc"       // printing/print preview resources
#include "BCGCBPro.rc"       // BCGControlBarPro resources/r/n [新加内容]
#endif

/
#endif    // not APSTUDIO_INVOKED

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值