使用C++Builder創建包含VCL組件的DLL

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中可以壓縮這種越界,這將使應用程序的大小最小化。

在C++Builder裏創建可以被Visual C++使用的DLL
在C++Builder裏創建可以被Visual C++使用的DLLshadowstar's home: source:  在前兩篇文章裏,我們討論了如何在C++Builder工程裏調用用MS Visual C++創建的DLL。這篇文章討論相反的一種情形,舉例說明如何用C++Bu...查看完整版>>在C++Builder裏創建可以被Visual C++使用的DLL
 
使用C++Builder創建自定義VCL組件時的一些問題
主頁:http:郵件:  在有些情況由于特殊的需求,需要開發自己的VCL組件以滿足需求。對于初學者來說有些問題是需要強調一下的。  第一:就是文件及類的命名問題  菜單操作過程:“Component->New Component....查看完整版>>使用C++Builder創建自定義VCL組件時的一些問題
 
在C++Builder中使用DLL
3.3在C++Builder中使用DLL 在C++Builder應用程序中,使用WindowsDLL就像在其他C++應用程中使用它一樣。 爲了在C++Builder應用程序被載入時靜態裝入DLL,可在程序鏈接時爲該DLL連入輸入庫文件。要在一個C++Buil...查看完整版>>在C++Builder中使用DLL
 
在 C++Builder 工程裏使用 Visual C++ DLL——第2部分:C++ 類
在 C++Builder 工程裏使用 Visual C++ DLL——第2部分:C++ 類shadowstar's home: source:注意:這篇文章描述如何把 C++ 類從 Visual C++ DLL 引入到 BCB 的工程中。在我們開始之前,我覺得必須給出一點警告。這篇文...查看完整版>>在 C++Builder 工程裏使用 Visual C++ DLL——第2部分:C++ 類
 
在 C++Builder 工程裏使用 Visual C++ DLL——第1部分:C函數
在 C++Builder 工程裏使用 Visual C++ DLL——第1部分:C函數譯者序:  第一次讀這篇文章是在 2001 年 10 月,幫我解決了一點小問題。本來不好意思翻譯,因爲英語水平實在太差。最近發現不少網友在問在 C++Builder...查看完整版>>在 C++Builder 工程裏使用 Visual C++ DLL——第1部分:C函數
 
使用C# 創建郵件發送組件(SMTP)
郵件發送在web應用中是屢見不鮮的,在asp時代大家多是利用一些第三方提供的組件如JMAIL、ASPMAIL等進行郵件發送。自從微軟推出Asp.net後,很多程序員開始轉向采用C#作爲主要的開發語言。asp.net提供了更加強大的功能...查看完整版>>使用C# 創建郵件發送組件(SMTP)
 
Visual C#創建和使用ActiveX組件
開發基于.Net平台上的程序員是很難從本質上把Visual C#和ActiveX組件聯起來,雖然在使用Visual C#開發應用程序時,有時爲了快速開發或者由于.Net FrameWork SDK的不完整,還需要借助ActiveX。但即使如此,也很難把二...查看完整版>>Visual C#創建和使用ActiveX組件
 
ASP.NET創建並使用Web組件
     前段時間筆者在開發中需要動態創建WEB組件,本以爲是小事一樁,誰知看時容易做時難。裏面還真有些小問題。下面筆者就結合自己的程序來介紹一下如何動態創建並使用WEB組件,希望能給做類似工作的朋友提供一點...查看完整版>>ASP.NET創建並使用Web組件
 
ASP.NET創建並使用Web組件
  前段時間筆者在開發中需要動態創建WEB組件,本以爲是小事一樁,誰知看時容易做時難。裏面還真有些小問題。下面筆者就結合自己的程序來介紹一下如何動態創建並使用WEB組件,希望能給做類似工作的朋友提供一點幫助...查看完整版>>ASP.NET創建並使用Web組件
 
 
回到王朝網路移動版首頁