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

 

 

阅读更多
上一篇使用Dependency Walker查看可执行程序的引用关系(Windows+VC开发)
下一篇关于BCGControlBar中使用 Office2007、2010 风格的问题
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭