新聞中心
易語言如何調(diào)用指定DLL文件?
基本說明本文所描述的部分功能需易語言 4.01 或以上版本支持。函數(shù); 函數(shù)。 “在易語言中調(diào)用 DLL”包含兩方面的內(nèi)容:調(diào)用 Windows 系統(tǒng) API 函數(shù);調(diào)用普通 DLL 函數(shù)。 易語言中 ”包含兩方面的內(nèi)容: 下文用到的“調(diào)用 API”或“調(diào)用 DLL”等字眼,除非特別注明,一般都是指以上兩方面之一或之和,視 上下文而定。絕大多數(shù)情況下,無需明確區(qū)分調(diào)用的是系統(tǒng) API 還是普通 DLL。中的導(dǎo)出函數(shù)。 目前易語言只支持以 stdcall 方式調(diào)用 DLL 中的導(dǎo)出函數(shù)。 Windows 系統(tǒng) API 一般都是以 stdcall 調(diào)用方式導(dǎo)出的,故在易語言中調(diào)用它們時通常不必考慮函數(shù)調(diào)用方 式的問題。而普通 DLL 有可能導(dǎo)出“非 stdcall 調(diào)用方式” (比如 cdecl)的函數(shù),調(diào)用時需要特別注意。一般而 言,考慮到通用性,DLL 開發(fā)者都會選擇導(dǎo)出以 sdtcall 方式調(diào)用的函數(shù)。 (支持生成 DLL 的編程語言通常都支 持導(dǎo)出 stdcall 調(diào)用方式的函數(shù),具體實現(xiàn)請參考各編程語言手冊。 ) 特別地,在 VC 中類似如下代碼導(dǎo)出的函數(shù)并非 stdcall 調(diào)用方式: extern "C" __declspec (dllexport) test(int a, int b) { return (a + b); } 要想該函數(shù)被易語言調(diào)用,應(yīng)該按類似如下方式定義(并在.def 文本中聲明導(dǎo)出) : int WINAPI test (int a, int b) { return (a + b); }易語言編譯生成的 DLL, 其導(dǎo)出函數(shù)全部為 stdcall 調(diào)用方式, 所以在易語言中調(diào)用易語言生成的 DLL 不存 在問題。字節(jié)對齊的結(jié)構(gòu)(自定義數(shù)據(jù)類型) 目前在易語言中調(diào)用 DLL 時只支持 1 字節(jié)對齊的結(jié)構(gòu)(自定義數(shù)據(jù)類型) 如果 DLL 命令的某個參數(shù)或參數(shù)的某個成員是結(jié)構(gòu)類型(自定義數(shù)據(jù)類型) ,則其對齊方式必須是 1 字節(jié) 對齊。Windows 系統(tǒng) API 中所用到的結(jié)構(gòu)都是 1 字節(jié)對齊的,故在調(diào)用 API 時不受此限制。但如果想用其它編 程語言生成 DLL 供易語言調(diào)用且數(shù)據(jù)類型中包含了 1 或 2 字節(jié)數(shù)據(jù)長度的成員(如字符型或短整數(shù)) ,就需要 考慮結(jié)構(gòu)的 1 字節(jié)對齊。 在 VC 中,可以這樣定義 1 字節(jié)對齊的結(jié)構(gòu)(結(jié)構(gòu)在 C/C++中稱為 struct) : #pragma pack (push, old_value) #pragma pack (1) //保存VC++編譯器結(jié)構(gòu)對齊字節(jié)數(shù)。 // 設(shè)置為以一字節(jié)對齊。struct xxx{ byte a; int b; double c; };#pragma pack (pop, old_value) // 恢復(fù) VC++編譯器結(jié)構(gòu)對齊字節(jié)數(shù)。在 Delphi 中,可以這樣定義 1 字節(jié)對齊的結(jié)構(gòu)(結(jié)構(gòu)在 Delphi 中稱為 record) : type xxx = packed record a: byte; b: integer; c: double; end; 在其它編程語言或編譯器中的定義方式請參考各自的編程手冊。目前易語言支持調(diào)用任意復(fù)雜的 目前易語言支持調(diào)用任意復(fù)雜的 DLL 命令 只要滿足了前面的兩個條件——調(diào)用方式為 stdcall,參數(shù)結(jié)構(gòu)為 1 字節(jié)對齊——易語言支持調(diào)用任意復(fù)雜 的 DLL 命令:參數(shù)除了可以是基本數(shù)據(jù)類型或普通結(jié)構(gòu)類型外,還可以是基本類型地址或基本類
創(chuàng)新互聯(lián)公司始終堅持【策劃先行,效果至上】的經(jīng)營理念,通過多達(dá)10多年累計超上千家客戶的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的營銷解決方案,現(xiàn)已廣泛運用于各行各業(yè)的客戶,其中包括:辦公窗簾等企業(yè),備受客戶夸獎。
易語言如何調(diào)用dll文件
不用改后綴名,改了之后就不能運行了,直接用“運行()”這個命令就可以了,dll和可執(zhí)行文件是不同的,dll動態(tài)鏈接庫有程序接口可供其他程序調(diào)用里面的子程序,調(diào)用的時候只需要在易語言的dll列表里填好相關(guān)信息,然后像調(diào)用其他子程序一樣調(diào)用就行了,也可以用dll注入
易語言怎么調(diào)用dll易語言調(diào)用子程序
你新建一個
子程序
。然后在子程序下添加參數(shù)就可以了!調(diào)用的話把做好的DLL放到運行目錄下。然后調(diào)用里插入個DLL然后
設(shè)置相關(guān)參數(shù)和編寫時候的參數(shù)一樣。然后是DLL文件名和子程序名就可以了
易語言如何調(diào)用DLL文件?
在易語言的左邊功能選項找---程序---dl命令--右鍵---插入新dll命令
DLL命令名=你給他的名稱(在窗口程序下可直接代碼輸入)
DLL庫文件名=你調(diào)用那個DLL命名
DDL庫中的對應(yīng)名=在被調(diào)用的DLL的子程序
完了后直接在窗口下輸入代碼(DLL命令名)
打包的時候?qū)LL放置包下(可減少錯誤率)
用易語言寫的DLL怎么樣再用易語言打開
要知道被調(diào)用的dll庫文件中的函數(shù)命令名稱、返回值和參數(shù)(以及其類型) 才可以在易語言里面調(diào)用;
在易語言中的調(diào)用方式為:新建一個windows窗口程序,然后在左邊的界面選擇“程序”,在DLL命令處右鍵點擊選擇插入新DLL命令,在DLL命令定義表中將DLL命令(在易語言中調(diào)用時使用的函數(shù)名稱)、返回值類型(如果DLL函數(shù)對應(yīng)命令有返回值的話)、DLL庫文件名(如myDLL.dll)、在DLL庫中對應(yīng)命令名(即DLL庫文件中的那個函數(shù)名稱)以及函數(shù)下的參數(shù)和類型(必須與dll文件中的對應(yīng)函數(shù)的保持一致)。
易語言DLL調(diào)用
你的 DLL 有用到 這個 窗口 肯定 調(diào)用的時候 也就有了我寫了 一個試了試 是可以的
下面這個是 DLL
.版本 2
.程序集 程序集1
.子程序 _啟動子程序, 整數(shù)型, , 請在本子程序中放置動態(tài)鏈接庫初始化代碼
_臨時子程序 () ' 在初始化代碼執(zhí)行完畢后調(diào)用測試代碼
返回 (0) ' 返回值被忽略。
.子程序 _臨時子程序
' 本名稱子程序用作測試程序用,僅在開發(fā)及調(diào)試環(huán)境中有效,編譯發(fā)布程序前將被系統(tǒng)自動清空,請將所有用作測試的臨時代碼放在本子程序中。 ***注意不要修改本子程序的名稱、參數(shù)及返回值類型。
.子程序 子程序1, , 公開
載入 (窗口1, , 真)
下面這個是聲明 DLL
.版本 2
.DLL命令 DLL命令1, , "1", "子程序1"
下面這個是調(diào)用 DLL
.版本 2
.程序集 窗口程序集1
.子程序 _按鈕1_被單擊
DLL命令1 ()
本文標(biāo)題:go語言調(diào)用易語言dll,go語言可以用來干嘛
分享URL:http://m.biofuelwatch.net/article/hsdcjj.html