成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

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)鏈接庫

    這樣我們在調(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ì)影響主程序的使用。

    我們在調(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è)資訊頻道,感謝各位的閱讀!

    當(dāng)前文章:Delphi中怎么調(diào)用動(dòng)態(tài)鏈接庫
    標(biāo)題URL:http://jinyejixie.com/article18/ggssdp.html

    成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、微信公眾號(hào)網(wǎng)頁設(shè)計(jì)公司、網(wǎng)站改版、網(wǎng)站內(nèi)鏈、定制網(wǎng)站

    廣告

    聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

    小程序開發(fā)
    乐都县| 色达县| 广南县| 山阴县| 乌兰察布市| 当雄县| 宜城市| 五莲县| 阜宁县| 凉山| 甘泉县| 衡东县| 磐安县| 大方县| 文登市| 武威市| 望奎县| 筠连县| 隆德县| 蛟河市| 邵阳市| 云南省| 凤山市| 望都县| 金溪县| 桑日县| 莎车县| 兴仁县| 汉源县| 福鼎市| 德安县| 读书| 濉溪县| 乌拉特前旗| 绥德县| 盐亭县| 宜黄县| 汾阳市| 清原| 万盛区| 东阿县|