如何在 C++Builder2007 中添加 ActiveX 控件

来源:互联网 发布:oracle重复数据筛选 编辑:程序博客网 时间:2024/05/16 07:21

如何在 C++Builder2007 中添加 ActiveX 控件

关键字:C++Builder2007,ActiveX,组件,控件,Package,ShockwaveFlash,seeker

作者:seeker    更新:2007-08-04 15:26:40    浏览:7365

标题:BCB2007 添加 ActiveX 控件
作者:seeker
日期:2007-08-04

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 工程

新建组件包工程后,我们在未修改之前保存工程名为 skFlash 。保存到上面步骤2中说的目录中去(F:/BCB2007_Add_OCX/flashocx/)。这样一来,工程就跟我们刚才的那四个文件在同一目录了图2。

附带保存前后工程的结构图,图3(左)的默认工程结构 和 保存后(右)的默认结构。



图2:工程文件目录



图3:工程结构

(4)
我向组件包添加我们的需要的组件:在 skFlash.bpl 上右键--Add ,选择我们的刚才4 个文件中2 个CPP 文件,见图4:



图4 选择组建文件

添加之后我们可以看到新的文件结构,图5。



图5 添加完组件文件

(5)
此时,我们可以进行编译和安装了。skFlash.bpl 上右键-->Build ,编译通过后,我们再次右键-->Install ,安装成功后即可使用!


// 本文转自 C++Builder研究 - http://www.ccrun.com/article.asp?i=1027&d=a5e8r3
(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]”之后的 注册代码即可。如下图:





【运行效果】

原创粉丝点击