如安在C++ Builder 2007中添加ActiveX控件
副标题#e#
BCB2007 的宣布是一件令人振奋的工作,它强大的成果和精采的不变性让我抉择从BCB6.0 转向2007。
BCB2007 的变革照旧较量大的,它不能像6.0那样利便地安装我们的ActiveX 控件,甚至有些网友说它基础不能安装ActiveX 控件,这样导致了宽大网友对BCB2007的不满。BCB2007真的无法安装我们的ActiveX 控件吗? 谜底是:可以安装。
具体的安装方案看下面的描写吧,有2个方案。
【方案一】
条件:安装有BCB6.0 和 BCB2007
步调:
(1)
这里我们用flash 控件 ShockwaveFlash.ocx 做例子。 用BCB6.0 添加需要安装的ActiveX 控件ShockwaveFlash.ocx(这里省却进程,各人城市的了,不会的看网络教程),留意,我们将其安装到新组件包skShockFlash.bpk中,编译安装通事后就是我们的要害事情了。
(2)
将适才生成的几个文件找出来,它们在BCB安装目次的Imports的子目次(好比 C:\Program Files\Borland\CBuilder6\Imports),这几个文件是:
ShockwaveFlashObjects_OCX.cpp ShockwaveFlashObjects_OCX.h
ShockwaveFlashObjects_TLB.cpp ShockwaveFlashObjects_TLB.h
将这些文件复制出来,放到一个目次去(好比:F:\BCB2007_Add_OCX\flashocx\),然后开启BCB2007 ,筹备在它内里安装我们的ShockwaveFlash.ocx 。
(3)
打开BCB2007 后,新建一个组件包工程:File–>New–>Other… 选择 Package 。如图1:
图1:新建 Package 工程
#p#副标题#e#
新建组件包工程后,我们在未修改之前生存工程名为 skFlash 。生存到上面步调2中说的目次中去(F:\BCB2007_Add_OCX\flashocx\)。这样一来,工程就跟我们适才的那四个文件在同一目次了图2。
附带生存前后工程的布局图,图3(左)的默认工程布局 和 生存后(右)的默认布局。
图2:工程文件目次
// 本文转自 C++Builder 研究 – http://www.ccrun.com/article.asp?i=1027&d=a5e8r3
图3:工程布局
(4)
我向组件包添加我们的需要的组件:在 skFlash.bpl 上右键–Add ,选择我们的适才4 个文件中2 个CPP 文件,见图4:
图4 选择组建文件
添加之后我们可以看到新的文件布局,图5。
图5 添加完组件文件
(5)
此时,我们可以举办编译和安装了。skFlash.bpl 上右键–>Build ,编译通事后,我们再次右键–>Install ,安装乐成后即可利用!
(6)
留意,安装完毕记得将 h 文件 插手BCB的 搜索目次, 可能直接复制到 Include 目次。
【方案二】
条件:仅仅安装有BCB2007
留意:本方案 跟BCB2007 版本有关!我的版本是:Version 11.0.2709.7128 。假如版本差异,本方案不可的话请参考方案一!
步调:
(1)
菜单 Component –> Import Component ,打开Import Component 领导对话框,选择 Import ActiveX Control ,下一步,选择 ShockwaveFlash 之后,下一步,配置工程文件的生存位置,这里是 E:\CodeGear\RAD Studio\5.0\Imports, 继承下一步,直到完成。
(2)
此时并没有我们想像中的工程,只有一个cpp 文件显示在界面上。这个CPP 文件就在适才我们生存的目次下:E:\CodeGear\RAD Studio\5.0\Imports\。
我们新建一个组件工程(具体步调见方案一),生存在E:\CodeGear\RAD Studio\5.0\Imports\ ,名为 skFlash2 。此时适才的cpp文件也在此目次下,
参考方案一,将它们添加进来安装即可利用!
(3)
留意,用BCB2007 生成的 cpp 文件大概编译不外,办理方如下:
首先在 ShockwaveFlashObjects_OCX.cpp 和ShockwaveFlashObjects_OCX.h 文件中,去掉 TFlashObjectInterface 和 TFlashProp 这2个类的相关代码即可编译通过,安装乐成。
其次在 ShockwaveFlashObjects_OCX.cpp 中文件末端 Register 函数中去掉 注释 “// [2]”之后的 注册代码即可。如下图:
【运行结果】