久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

對使用Delphi制作DLL復用文件的建議

 quasiceo 2012-12-29

對使用Delphi制作DLL復用文件的建議

對使用Delphi制作DLL復用文件的建議
  在公司里有一些需要制作DLL的場合,,因為熟悉、方便和簡易,,大多數使用Delphi來制作?,F(xiàn)在就這個主題提出一些個人建議。
  
  盡量使用標準DLL接口,。指的是傳遞的參數類型及函數返回類型不能是Delphi特有的,,比如string(AnsiString),以及動態(tài)數組和含有這些類型成員的復合類型(如記錄),,也不能是包含有這些類型成員數據成員的對象類型,,以避免可能的錯誤。假如使用了string類型或動態(tài)數組類型,,且調用方不是Delphi程序,,則基本上會報錯。假如調用方是Delphi但調用方或被調用方沒有在工程文件的第一包含單元不是ShareMem,,也可能會出錯。
  
  假如調用方是Delphi應用程序,,則可能可以使用不包含禁止類型(string,動態(tài)數組)數據成員的對象作為參數或返回值,,但也應盡量避免。
  
  假如調用方與被調用方都是Delphi程序,,而且要使用string或動態(tài)數組作參數,,則雙方工程文件的第一包含單元必須是ShareMem,。(C Builder程序的情況可能與此相同,不過沒有測試過,。)
  
  假如調用方不是Delphi程序,,則string、動態(tài)數組,、包含string或動態(tài)數組的復合數據類型及類實例,,都不能作為參數及返回值。
  
  因此,,為了提高DLL的復用范圍,,避免可能存在的錯誤,應當使用標準WIN32API標準參數類型,,以前使用string的變量,,可以使用PChar(s)轉換。動態(tài)數組則轉換為指針類型(@array[0]),,并加上數組的長度,。
  
  假如因為調用方與被調用方都是Delphi程序,為了編寫方便,,不想進行上述轉換,,則推薦使用運行時包的形式。運行時包可以保證動態(tài)分配數據的正確釋放,。這樣因為其擴展名(.bpl),,顯出該文件僅限于Delphi/C Builder使用(不象DLL)。
  
  其次,,盡量避免使用overload的函數/過程作輸出,,假如同一操作有多個方式,則可以讓函數/過程名有少許差別,,類似于Delphi中的FormatXXXX,、CreateXXXX等函數及方法,如CreateByDefaultFile,CreateDefault,。
  
  最后,,作為DLL的提供者,應當提供直接編程的接口文件,,如Delphi中的.pas或.dcu(最好是.pas,,因為可以有注釋)、C及C 中的.h和.lib,。而不是讓使用者們自己創(chuàng)建,。假如非要有overload的函數/過程,這一點顯得非凡重要,。另外,,作為Delphi應用,,提供的.pas文件可以是提前連接的(使用external指定DLL中的輸出函數),也可以是后期連接的(使用LoadLibrary,、GetProcAddress),,DLL提供者提供編程接口文件,既顯得正式(或HiQoS),,又有保障,。

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報,。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多