|
易語言中調用DLL 使用說明 基本說明 本文所描述的部分功能需易語言4.01或以上版本支持。
“在易語言中調用DLL ”包含兩方面的內容:調用Windows 系統(tǒng)API 函數(shù);調用普通DLL 函數(shù)。 下文用到的“調用API ”或“調用DLL ”等字眼,除非特別注明,一般都是指以上兩方面之一或之和,視上下文而定。絕大多數(shù)情況下,無需明確區(qū)分調用的是系統(tǒng)API 還是普通DLL 。
目前易語言只支持以stdcall 方式調用DLL 中的導出函數(shù)。 Windows 系統(tǒng)API 一般都是以stdcall 調用方式導出的,故在易語言中調用它們時通常不必考慮函數(shù)調用方式的問題。而普通DLL 有可能導出“非stdcall 調用方式”(比如cdecl )的函數(shù),調用時需要特別注意。一般而言,考慮到通用性,DLL 開發(fā)者都會選擇導出以sdtcall 方式調用的函數(shù)。(支持生成DLL 的編程語言通常都支持導出stdcall 調用方式的函數(shù),具體實現(xiàn)請參考各編程語言手冊。) 易語言編譯生成的DLL ,其導出函數(shù)全部為stdcall 調用方式,所以在易語言中調用易語言生成的DLL 不存在問題。
目前在易語言中調用DLL 時只支持1字節(jié)對齊的結構(自定義數(shù)據(jù)類型) 如果DLL 命令的某個參數(shù)或參數(shù)的某個成員是結構類型(自定義數(shù)據(jù)類型),則其對齊方式必須是1字節(jié)對齊。Windows 系統(tǒng)API 中所用到的結構都是1字節(jié)對齊的,故在調用API 時不受此限制。但如果想用其它編 程語言生成DLL 供易語言調用且數(shù)據(jù)類型中包含了1或2字節(jié)數(shù)據(jù)長度的成員(如字符型或短整數(shù)),就需要考慮結構的1字節(jié)對齊。
|
|
|