| 導購 | 订阅 | 在线投稿
分享
 
 
 

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

2008-06-01 01:55:10  編輯來源:互聯網  简体版  手機版  評論  字體: ||
 
  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中可以壓縮這種越界,這將使應用程序的大小最小化。
 
3.5創建包含VCL組件的DLL DLL的一個好處在于用一種開發工具創建的DLL可以用于另一不同的開發工具編寫的程序使用。當在調用應用程序中使用了包含了VCL組件(比如窗體)的DLL,則必須提供輸出接口路徑以用于標准的傳統調用來避免C++名稱不匹配,並且不需要所調用的應用程序支持VCL庫。爲了創建能夠輸出的VCL組件,可使用運行時程序包,有關信息可以參閱第10章。 比如,假設要創建一個DLL,顯示如下簡單的對話框(如圖3-1所示)。[url=/bbs/detail_1784988.html][img]http://image.wangchao.net.cn/it/1323425082965.gif[/img][/url] 這個對話框DLL的代碼如下: [url=/bbs/detail_1784988.html][img]http://image.wangchao.net.cn/it/1323425083087.gif[/img][/url] [url=/bbs/detail_1784988.html][img]http://image.wangchao.net.cn/it/1323425083165.gif[/img][/url] [url=/bbs/detail_1784988.html][img]http://image.wangchao.net.cn/it/1323425083252.gif[/img][/url] 這個例子代碼顯示對話框,並在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中可以壓縮這種越界,這將使應用程序的大小最小化。
󰈣󰈤
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
王朝網路微信公眾號
微信掃碼關註本站公眾號 wangchaonetcn
 
  免責聲明:本文僅代表作者個人觀點,與王朝網絡無關。王朝網絡登載此文出於傳遞更多信息之目的,並不意味著贊同其觀點或證實其描述,其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,並請自行核實相關內容。
 
© 2005- 王朝網路 版權所有