BCGControlBarPro静态链接实现方法

引自:http://www.educity.cn/wenda/493447.html


昨天应一个网友的要求,测试了一下BCGControlBarPro静态链接实现方法。采用BCG向导生成的静态链接的项目会报错,提示资源及DLL找不到。经过测试,解决了这个问题,特共享出来给大家一起分享。


环境:VS 2008 TE

  BCGPro 10.30

项目属性:Static Link
  Unicode
  Ribbon

我的方法是将相关的资源复制到项目下。
1、将BCGSoft\BCGControlBarPro\BCGCBPro\Styles下的
BCGPStyle2007Luna.rc
BCGPStyle2007Obsidian.rc
BCGPStyle2007Silver.rc
BCGPStyle2007Aqua.rc
BCGPStyleCarbon.rc
BCGPStyleScenic.rc
BCGPStyle2007Luna.rc2
BCGPStyle2007Obsidian.rc2
BCGPStyle2007Silver.rc2
BCGPStyle2007Aqua.rc2
BCGPStyleCarbon.rc2
BCGPStyleScenic.rc2
复制到你的项目的主目录下,记得与你的rc文件的目录相同。

2、将BCGSoft\BCGControlBarPro\BCGCBPro\Styles下的
Carbon
Office 2007 (aqua)
Office 2007 (luna - blue)
Office 2007 (obsidian - black)
Office 2007 (silver)
Scenic
目录复制到你的项目的主目录下。

3、在资源视图的对话框上点击右键,选择“资源包括(L)...”,在“编译时指令”中的最后加上
#include "BCGPStyle2007Luna.rc"
#include "BCGPStyle2007Obsidian.rc"
#include "BCGPStyle2007Silver.rc"
#include "BCGPStyle2007Aqua.rc"
#include "BCGPStyleCarbon.rc"
#include "BCGPStyleScenic.rc"

4、编译即可。

另外BCG本身提供了静态链接的方法:

#if !defined _AFXDLL || defined _BCGCBPRO_STATIC_
TRACE(_T("\r\nImportant: to enable Office 2007 look in static link, you need:\r\n"));
TRACE(_T("1. Open \"Resource Includes\" dialog and add resource files:\r\n"));
TRACE(_T("\\styles\\BCGPStyle2007Luna.rc\r\n"));
TRACE(_T("\\styles\\BCGPStyle2007Obsidian.rc\r\n"));
TRACE(_T("\\styles\\BCGPStyle2007Silver.rc\r\n"));
TRACE(_T("\\styles\\BCGPStyle2007Aqua.rc\r\n"));
TRACE(_T("2. Add path to this folder to \"Additional Resource Include Directories\"\r\n"));
TRACE(_T("\\styles\r\n\r\n"));
ASSERT (FALSE);
#endif


该方法不需要进行复制,
1、在资源包括中添加资源项;
2、在资源视图中点击右键,选属性->资源->常规->附加包含目录中添加路径。
我没有尝试成功,所以采用了全复制资源文件的方法。

有哪位尝试出来后能不能和大家共享下?!

=====================================================

红色部分的方法本人已经测试,可以使用。而且,这样用起来比较灵活方便,不用再去重新编译BCG的项目,BCG项目各种环境各种版本编译也要很长时间。

具体方法:

1. 右键资源,选“Resource Includes”菜单,弹出对话框,添加#include “BCGPStyle2007Obsidian.rc”这样的语句。

2. 在项目属性里面找到“Resources”->"Additional Include Directories"把“【BCG安装目录】\BCGCBPro\Styles这个路径添加进去就行。”

你可能感兴趣的:(VC++)