真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Delphi中怎么調(diào)用動(dòng)態(tài)鏈接庫

Delphi中怎么調(diào)用動(dòng)態(tài)鏈接庫,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

10年積累的成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有盤州免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

調(diào)用動(dòng)態(tài)庫的兩種方法

  • 靜態(tài)調(diào)用

    這種用法的前提是在編譯之前已經(jīng)明確知道要調(diào)用DLL中的哪幾個(gè)函數(shù),編譯時(shí)在目標(biāo)文件中只保留必要的鏈接信息,而不含DLL函數(shù)的代碼;當(dāng)程序執(zhí)行時(shí),利用鏈接信息加載DLL函數(shù)代碼并在內(nèi)存中將其鏈接入調(diào)用程序的執(zhí)行空間中,其主要目的是便于代碼共享。

  • 動(dòng)態(tài)調(diào)用

    這種方式是指在編譯之前并不知道將會(huì)調(diào)用哪些DLL函數(shù),完全是在運(yùn)行過程中根據(jù)需要決定應(yīng)調(diào)用哪個(gè)函數(shù),并用LoadLibrary和GetProcAddress動(dòng)態(tài)獲得DLL函數(shù)的入口地址。

代碼演示

我們先創(chuàng)建一個(gè)動(dòng)態(tài)鏈接庫名稱為PosPayIntf,最近幾章介紹Delphi技術(shù)的都是用這個(gè)動(dòng)態(tài)庫,因?yàn)檎靡驗(yàn)轫?xiàng)目要做一個(gè)對(duì)接第三方微信支付寶的動(dòng)態(tài)庫。Delphi中怎么調(diào)用動(dòng)態(tài)鏈接庫入口函數(shù)為PosPayOperate

function PosPayOperate(OpType: Integer; const InPara: PChar; OutPara, OutMsg: PChar): Integer; export; stdcall;

    Delphi中怎么調(diào)用動(dòng)態(tài)鏈接庫

    Delphi中怎么調(diào)用動(dòng)態(tài)鏈接庫

    然后我們新建一個(gè)Application,加入兩個(gè)Memo,一個(gè)combox和一個(gè)Button按鈕

    Delphi中怎么調(diào)用動(dòng)態(tài)鏈接庫

    靜態(tài)調(diào)用

    在uses下面加入

    const
      SMCzkYw_DLL = 'PosPayIntf.dll';           //調(diào)用動(dòng)態(tài)庫名稱
      function PosPayOperate(OpType: Integer; const InPara: PChar; OutPara, OutMsg: PChar): Integer; export; stdcall;

    Delphi中怎么調(diào)用動(dòng)態(tài)鏈接庫

    然后在implementation下面加入

      function PosPayOperate(OpType: Integer; const InPara: PChar; OutPara, OutMsg: PChar): Integer; external POSPAY_DLL;

    Delphi中怎么調(diào)用動(dòng)態(tài)鏈接庫

    這樣我們?cè)谡{(diào)用的時(shí)候就直接可以使用

    Delphi中怎么調(diào)用動(dòng)態(tài)鏈接庫

    用靜態(tài)調(diào)用動(dòng)態(tài)庫相對(duì)來說代碼比較少,但是我們的動(dòng)態(tài)庫必須要放到和這個(gè)EXE的程序下,如果DLL文件沒有存在,程序則無法運(yùn)行,提示你少DLL文件。


    動(dòng)態(tài)調(diào)用

    今天我們主要說的還是動(dòng)態(tài)調(diào)用,因?yàn)橛脛?dòng)態(tài)調(diào)用的方法如果DLL不存在,或是入口函數(shù)有問題,我們都可以通過try except進(jìn)行捕獲,也不會(huì)影響主程序的使用。

    我們?cè)谡{(diào)用動(dòng)態(tài)庫方法的按鈕事件里面直接定義一個(gè)THandle和一個(gè)TPublicFun,TPublicFun撒向的就是我們的入口函數(shù)

    Delphi中怎么調(diào)用動(dòng)態(tài)鏈接庫

    然后通過LoadLibrary來加載動(dòng)態(tài)庫

    Delphi中怎么調(diào)用動(dòng)態(tài)鏈接庫

    調(diào)用的方式和靜態(tài)調(diào)用一樣

    Delphi中怎么調(diào)用動(dòng)態(tài)鏈接庫

    最后用try finally來釋放一下動(dòng)態(tài)庫

    Delphi中怎么調(diào)用動(dòng)態(tài)鏈接庫

    看完上述內(nèi)容,你們掌握Delphi中怎么調(diào)用動(dòng)態(tài)鏈接庫的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


    新聞名稱:Delphi中怎么調(diào)用動(dòng)態(tài)鏈接庫
    文章源于:http://weahome.cn/article/ggssdp.html

    其他資訊

    在線咨詢

    微信咨詢

    電話咨詢

    028-86922220(工作日)

    18980820575(7×24)

    提交需求

    返回頂部