如何编译Delphi组件让其在C++ Builder中可用?

Delphi下有许多很好的VCL组件,但作者却没有提供C++ Builder的版本,这许多时候是因为作者就是纯Delphier,不了解C++,另外还有可能是因为作者本身就很懒,根本就没有考虑到C++ Builder的广大人民群众。那么,做为苦难深众的C++ Builder用户难道就此放弃吗?绝不!(此处应该有掌声)

实际上,绝大多数Delphi控制都可以无缝的迁移到C++ Builder下的,我们以著名的VirtualTreeView为例,看我们CB用户如何玩乾坤大挪移!

1、首先,我们要使用Rad Studio,而不是Delphi或C++Builder来操作,所以注意第一点,否则可会失败哟。如果你只装了CB或只装了Delphi,你就重装吧。

2、打开相应版本的Delphi版目录,发现有两个VirtualTreesD和VirtualTreesR两个Delphi安装包,从我们无比幸福的Delphi用户那里,我们可以窃听到一个重要的信息:以R结尾的一般是运行时包,以D结尾的一般是设计期包。所以我们要先打开运行期包VirtualTreesR.dpk:

QQ截图20140828212742

3、打开项目选项(Project->Options),然后找到关键的地方:Delphi Compiler->Output-C/C++,在最右侧的C/C++ Output file generation里,选中Generate all C++ Builder files(Including package libs)选项,然后选OK关闭窗口。

QQ截图20140828213228

4、Ctrl+F9编译项目,完成运行时包的编译。

5、重复上面的步骤打开VirtualTreesD.dpk,然后修改完选项后,选择Install来安装包,然后你会幸运的得到提示,提示你组件已经安装成功了。

6、现在新建一个项目,到组件面板上找TVirtualStringTree吧。

同样的经验适用于其它绝大多数Delphi控件,比如Graphics32,但注意你可能需要对最终生成的HPP文件做一些改动,以避免与C++里自带的内容冲突,这个遇到一处改掉一处,就不再缀述了。

分享到: