易語言如何呼叫指定dll檔案,易語言如何呼叫指定DLL檔案?

2021-12-23 20:34:54 字數 2119 閱讀 5694

1樓:匿名使用者

基本說明本文所描述的部分功能需易語言 4.01 或以上版本支援。函式; 函式。

「在易語言中呼叫 dll」包含兩方面的內容:呼叫 windows 系統 api 函式;呼叫普通 dll 函式。 易語言中 」包含兩方面的內容:

下文用到的「呼叫 api」或「呼叫 dll」等字眼,除非特別註明,一般都是指以上兩方面之一或之和,視 上下文而定。絕大多數情況下,無需明確區分呼叫的是系統 api 還是普通 dll。中的匯出函式。

目前易語言只支援以 stdcall 方式呼叫 dll 中的匯出函式。 windows 系統 api 一般都是以 stdcall 呼叫方式匯出的,故在易語言中呼叫它們時通常不必考慮函式呼叫方 式的問題。而普通 dll 有可能匯出「非 stdcall 呼叫方式」 (比如 cdecl)的函式,呼叫時需要特別注意。

一般而 言,考慮到通用性,dll 開發者都會選擇匯出以 sdtcall 方式呼叫的函式。 (支援生成 dll 的程式語言通常都支 持匯出 stdcall 呼叫方式的函式,具體實現請參考各程式語言手冊。 ) 特別地,在 vc 中類似如下**匯出的函式並非 stdcall 呼叫方式:

extern "c" __declspec (dllexport) test(int a, int b) 要想該函式被易語言呼叫,應該按類似如下方式定義(並在.def 文字中宣告匯出) : int winapi test (int a, int b) 易語言編譯生成的 dll, 其匯出函式全部為 stdcall 呼叫方式, 所以在易語言中呼叫易語言生成的 dll 不存 在問題。

位元組對齊的結構(自定義資料型別) 目前在易語言中呼叫 dll 時只支援 1 位元組對齊的結構(自定義資料型別) 如果 dll 命令的某個引數或引數的某個成員是結構型別(自定義資料型別) ,則其對齊方式必須是 1 位元組 對齊。windows 系統 api 中所用到的結構都是 1 位元組對齊的,故在呼叫 api 時不受此限制。但如果想用其它編 程語言生成 dll 供易語言呼叫且資料型別中包含了 1 或 2 位元組資料長度的成員(如字元型或短整數) ,就需要 考慮結構的 1 位元組對齊。

在 vc 中,可以這樣定義 1 位元組對齊的結構(結構在 c/c++中稱為 struct) : #pragma pack (push, old_value) #pragma pack (1) //儲存vc++編譯器結構對齊位元組數。 // 設定為以一位元組對齊。

struct ***;#pragma pack (pop, old_value) // 恢復 vc++編譯器結構對齊位元組數。在 delphi 中,可以這樣定義 1 位元組對齊的結構(結構在 delphi 中稱為 record) : type *** = packed record a:

byte; b: integer; c: double; end; 在其它程式語言或編譯器中的定義方式請參考各自的程式設計手冊。

目前易語言支援呼叫任意複雜的 目前易語言支援呼叫任意複雜的 dll 命令 只要滿足了前面的兩個條件——呼叫方式為 stdcall,引數結構為 1 位元組對齊——易語言支援呼叫任意複雜 的 dll 命令:引數除了可以是基本資料型別或普通結構型別外,還可以是基本型別位址或基本類

2樓:匿名使用者

本人只抓重點,如果有誤請諒解。

1.開啟dll命令定義表,並右鍵,選擇插入dll命令2.按照提示填寫對應的引數。

dll庫檔名指dll檔案的目錄,如果只輸入名字如run.dll則會預設為當前目錄下;在庫中對應檔名指在dll裡的子程式名稱,而dll的呼叫名稱則可以隨便定,推薦一致。舉個例子,dll裡的子程式名是run,你在dll裡的庫對應檔名裡填run,而你填在dll命令名稱為』執行,仍然可以呼叫;dll的子程式裡的引數內容要順序一致,引數名稱一致,引數型別一致,才可以成功呼叫。

3.開始呼叫這個dll命令,如果成功則會正常執行,如果錯誤為沒有***命令,則是在庫中對應檔名沒有填寫正確或檔名輸入錯誤。

3樓:匿名使用者

知道dll的介面才行哦

易語言怎麼呼叫dll易語言呼叫子程式

4樓:迪蒙智慧型交通

你新建乙個子程式。然後在子程式下新增引數就可以了!呼叫的話把做好的dll放到執行目錄下。

然後呼叫裡插入個dll然後 設定相關引數和編寫時候的引數一樣。然後是dll檔名和子程式名就可以了

易語言如何連線access資料庫

du其實做資料庫,最好用2003的。這樣適用的zhi機器範圍會廣些。如果dao人版家沒有安裝2007的相關檔案權的話,恐怕就不能用了。直接開啟的方法是不行的,可以用odbc方法來實現 外部資料庫1.開啟 odbc dsn ms access database dbq 取執行目錄 資料庫.accdb ...

易語言如何判斷檔案是否存在,不存在進行某操作

1 新建易語言程式,在易語言啟動視窗中新增乙個按鈕,然後雙擊這個按鈕 2 雙擊易語言視窗左側的 模組引用表 按鈕,然後引入精易模組 3 在 區域填寫 檔案 是否存在 命令,這時會返回邏輯型,然後將返回結果取反,這時如果檔案不存在就會向下進行操作 版本 2 如果真 取反 檔案是否存在 c window...

易語言如何判斷編輯框內有多少個字

用取文bai本長度 編輯框.內容 會有du問題的。zhi 1 錯誤問題 取文字長度dao 編輯框.內容 取出的是回 位元組,而漢字乙個字是答兩個位元組。如果編輯框裡有乙個字母和乙個漢字,用取文字長度 編輯框.內容 取出的就是三個字。2 解決方法 這裡用了乙個子程式 取字串長度 它的作用可以乙個把數字...