WEB开发网
开发学院软件开发C++ 使用 C++ Builder 创建包含VCL组件的DLL 阅读

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

 2008-03-08 22:02:14 来源:WEB开发网   
核心提示:3.5创建包含VCL组件的DLLDLL的一个好处在于用一种开发工具创建的DLL可以用于另一不同的开发工具编写的程序使用,当在调用应用程序中使用了包含了VCL组件(比如窗体)的DLL,使用 C++ Builder 创建包含VCL组件的DLL,则必须提供输出接口路径以用于标准的传统调用来避免C++名称不匹配,并且不需要所调
  3.5创建包含VCL组件的DLL
  DLL的一个好处在于用一种开发工具创建的DLL可以用于另一不同的开发工具编写的程序使用。当在调用应用程序中使用了包含了VCL组件(比如窗体)的DLL,则必须提供输出接口路径以用于标准的传统调用来避免C++名称不匹配,并且不需要所调用的应用程序支持VCL库。为了创建能够输出的VCL组件,可使用运行时程序包,有关信息可以参阅第10章。
  比如,假设要创建一个DLL,显示如下简单的对话框(如图3-1所示)。使用 C++ Builder 创建包含VCL组件的DLL(图一)
  这个对话框DLL的代码如下:
使用 C++ Builder 创建包含VCL组件的DLL(图二)
使用 C++ Builder 创建包含VCL组件的DLL(图三)
使用 C++ Builder 创建包含VCL组件的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中可以压缩这种越界,这将使应用程序的大小最小化。

Tags:使用er 创建

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接