使用C++Builder创建包含VCL组件的DLL

王朝vc·作者佚名  2008-06-01
宽屏版  字体: |||超大  

3.5创建包含VCL组件的DLL

DLL的一个好处在于用一种开发工具创建的DLL可以用于另一不同的开发工具编写的程序使用。当在调用应用程序中使用了包含了VCL组件(比如窗体)的DLL,则必须提供输出接口路径以用于标准的传统调用来避免C++名称不匹配,并且不需要所调用的应用程序支持VCL库。为了创建能够输出的VCL组件,可使用运行时程序包,有关信息可以参阅第10章。

比如,假设要创建一个DLL,显示如下简单的对话框(如图3-1所示)。

这个对话框DLL的代码如下:

这个例子代码显示对话框,并在Yes按钮被按下时在私有数据成员returnValue中存储true值,否则,returnValue值为false。公用的GetReturnValue()函数接收returnValue的当前值。

为了调用这个对话框,并确定是哪一个按钮被按下,调用的应用程序调用输出函数InvokeYesNoDialog()。这个函数作为C链(以避免C++名称不匹配)和标准的传统C调用的一个输出函数在DLLMAIN.H中声明,在DLLMAIN.CPP中定义。

在DLL中使用标准的C函数作为接口,不管是否是用C++Builder创建的,任意调用的应用程序都能使用这个DLL。要求支持这个对话框的VCL功能被链接入DLL本身,而所调用的应用程序不需要了解它的任何东西。

要注重的是,当创建了一个VCL的DLL时,所需的VCL组件被链接入DLL,将导致一定量的越界(overhead),通过将几个组件结合进一个只需要VCL支持组件的一个备份的DLL中可以压缩这种越界,这将使应用程序的大小最小化。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有