程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi中的DLL封裝和調用對象編寫碰到的問題

Delphi中的DLL封裝和調用對象編寫碰到的問題

編輯:Delphi
具體的DLL封裝對象請看劉藝的《Delphi中的DLL封裝和調用對象技術》及配書源碼。
  本人在使用Delphi編制DLL過程中碰到了些奇怪的問題,現在將其列出來,僅供參考:
  1、Delphi生成的DLL工程中寫到:ShareMem must be the first unit in your library's USES clause AND your project's。這裡提到的是DLL工程和使用該DLL的工程都需要引用ShareMem單元。
      ShareMem單元最好加到工程裡面,因為在實際使用中發現,有時工程與DLL之間傳遞對象來使用,對象有STRING類型的屬性時,可能會出現奇怪的錯誤。
  
  2、調用DLL函數定義問題:
      當DLL中輸出:function ABC: IInterface;
      而在程序中如下定義函數調用:
          type
            TFunc = function: IInterface; stdcall; //多了個stdcall
      會出現奇怪的錯誤,應該定義成和DLL中定義的一樣:
          type
            TFunc = function: IInterface;
  
  3、當使用到DLL中的接口,記得用完後必須在DLL中對象釋放前設置為NIL;
  
  4、Delphi中調試DLL:經常碰到調試DLL時,加不了斷點的問題。看看DLL中的設置,編譯後DLL的輸出路徑和設置調用該DLL的主程序路徑設置是否一樣,並且都應該是絕對路徑;
  
  5、《Delphi中的DLL封裝和調用對象技術》中提到,DLL 在封裝對象上主要的限制在於
  ?? 1、調用DLL 的應用程序只能使用DLL 中對象的動態綁定的方法
        2、。。。
        3、。。。
      對於DLL使用主程序中對象的方法好象沒有這個限制,不知道為什麼?
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved