一.關于易語言 DLL
從易語言 3.6 版開始,已經能夠支持對DLL動態鏈接庫的開發, 編譯出的DLL是標準的DLL,和其他編程語言生成的標準 DLL 的調用方法相同。易語言編寫出的DLL,在非獨立編譯exe時只需要DLL文件隨應用程序一起發行,而獨立編譯 exe 時無需將 DLL 文件隨應用程序一起發行。
二.新建易語言DLL程序
新建一個易語言程序,然后選擇 “windows動態鏈接庫”圖標,易語言就會自動創建
出編寫態連接庫的代碼區(程序集)
創建完畢就可以在代碼區里編寫DLL程序。
三.如何生成動態連接庫 (DLL)
易語言中的 DLL 編寫方法和易模塊的編寫方法類似,都需要有對外的公開接口。下面將通過編寫一個“自創信息框”來看一下用易語言如何編寫和調用DLL。
編寫DLL時的公開接口只能由以下方式生成,新建一個子程序,然后把“公開”選中,在DLL中任何程序集中選中“公開”的子程序都作為對外接口:
修改一下子程序名稱,叫“自創信息框”,然后創建2個參數“標題”和“內容”,都定義成整數型:
注意:目前DLL接口函數中的參數只能為以下9種之一:
字節型、短整數型、整數型、長整數型、小數型、雙精度小數型、邏輯型、日期時間型、子程序指針型
定義好DLL參數后,我們可以創建新窗體作為信息框窗口,在新窗體上畫一個按鈕,一個標簽,為了讓用戶按下確定按鈕后,窗口能關閉,可以雙擊確定按鈕,創建按鈕“被單擊”的觸發事件,寫入代碼:
然后返回到剛才的程序集1代碼區開始編寫代碼。
由于2個參數都定義成了整數型,而調用的時候傳遞過來的標題和內容一定是文本型的,那么怎樣去取得里面內容呢?別急,易語言3.6版中考慮到了這個問題,所以新增加了3個命令:“指針到文本”、“指針到字節集”、“寫到內存”。
當用戶傳遞的是文本型或者字節集型,易語言將自動轉換成指針,我們可以使用“指針到文本”或“指針到字節集”把原來的文本返回出來。如下圖所示:
到此已經完成“自創信息框DLL”所有工作,最后可以選擇菜單“程序”→“編譯”將其編譯為DLL。如下圖所示:
也可以使用快捷鍵“F7”編譯剛剛編寫的DLL,我們將編譯以后的DLL名稱命名為“自創信息框”,如下圖所示:
通過以上,用易語言編寫DLL的過程序基本完成。
四.如何使用DLL
用易語言編寫的DLL可以在易語言自身調用,同樣,也可以在其他編程語言中調用,如(VB,VC,Delphi等)
在易語言中的調用方法如下圖所示:
注意:定義時,2個參數都定義成文本型
最后請在窗體上畫一個按鈕,雙擊按鈕,寫上代碼調用這個DLL,按下按鈕后,就會看到效果了!
注意事項:
1:調用DLL時的Dll對應命令名必須和接口名稱完全一樣。
2:接口函數的參數必須是基本數據類型,且不能為字節集型、文本型。
3:易語言3.6版中新增加3個命令“指針到文本”、“指針到字節集”、“寫到內存”,這3個命令最佳使用場合就是在易語言回調子程序和易語言DLL公開子程序用作獲取外部數據。在Dll中使用文本參數的方法請參考“取漢字拼音.rar”程序
4:易語言編寫的DLL如果要在其他編程語言中使用,必須附帶對應的易語言支持庫
1. 如何在易語言中調用類型庫
Q: What's 類型庫?
A: 類型庫是一個描述信息的集合,這些描述信息涉及組件的類、接口及接口上的方法以及這些方法的參數類型。類型庫通過 ITYPELIB 接口來訪問,用他可以輕松的解決如用戶界面等問題,使程序開發更加的簡單。
現在在“易語言”中,也可以使用類型庫了,那么如何調用類型庫呢?
首先運行“易語言”選擇“工具”→“封裝類型庫及OCX組件”菜單
會出現一個注冊OCX及類型庫的窗口
我們向下拖動滾動條,可以看到一個類型庫的分類,在這個分類之前的就是我們系統中的OCX組件,這個我們已經非常熟悉了,這里就不作說明了,在類型庫的分類之后,就是我們系統中有的類型庫,我們可以選擇我們需要使用的注冊。
我們可以選擇我們需要的類型庫之后選擇“下一步”
之后我們會看到一個類似我們使用過的OCX注冊那樣的窗口,我們可以在這里對這個類型庫作一些漢化等操作
在完成了我們所需要的漢化工作之后,我們可以點擊“保存”按鈕來保存我們剛才的操作
點擊保存之后,會有提示信息提示你是否要把我們注冊好的類型庫保存到“易語言”目錄中去
我們選擇“是”之后,會提示我們安裝成功
這時我們再運行“易語言”,在支持庫中,就會看到我們剛才注冊的類型庫。
到這里我們已經完成把類型庫注冊到“易語言”中的工作了,下面在讓我們來了解一下如何在易語言中使用這些類型庫
首先我們展開數據類型
我們會看到他下面有很多類型,而這些類型下面又有很多命令,我們可以把它們看作是定義好了的自定義數據,每一個類型就是自定義數據類型的一個類型名,下面的每一個命令都是一個成員。
那么我們怎么使用他們呢?
首先創建一個變量,他的類型就是這些項目的名稱,我們可能在類型選擇中找不到這些,我們可以點擊這項來展開所有的類型,就會發現我們需要的。
選擇我們需要的類型就可以了
具體的使用方法就和使用自定義數據類型一樣,直接使用我們選擇類型中的命令就可以了,如果還不能理解,想一下字體是怎么用的?定義“字體”為字體類型,使用“字體.加粗=真 ”方法是一樣。
我們再回過頭來看一下,把滾動條向下拉,我們會看到一些事件
箭頭所示的就是office類型庫包括的事件,這些事件如何使用呢
我們會發現在控件箱中多出了一些控件,這些控件就是剛才我們注冊的類型庫的觸發事件,我們需要使用它的時候,就可其他組件一樣把它拖放到窗體上就可以了
這是我們會發現在屬性中多出一個控件,我們選擇該控件的觸發事件就可以了
他的使用和其他觸發事件是一樣的
到這里,我們已經了解了在“易語言”中是如何使用類型庫了,是不是很簡單?其實類型庫的使用就和其他的命令沒有什么區別,不要感覺它多么深奧,只要我們有健全的資料就可以很好的使用它們為我們寫出很好的軟件。
2. 如何在易語言中使用類型庫
如何在易語言中使用類型庫,我們下面用一個小例程來說明,首先打開“易語言”
選擇“工具”→“封裝類型庫及OCX組件”注冊word類型庫。
然后左邊支持庫表中會出現word的類型庫
然后我們在窗體中畫上兩個按鈕以便我們使用,至于旁邊畫的那個com控件我們等一下
現在我們開始寫入代碼,如果按照com對象的方法來操作word,我們就要先創建一個word的對象,連接“Word.Application”,其實這也是調用“word”對象中的“Application”對象,但是現在不用這樣了,通過類型庫我們可以直接來操作“Application”首先我們創建一個程序集變量,類型為“Application” ,這樣我們就可以直接操作“Application”中的命令
在“_按鈕1_被單擊”事件中輸入
這兩行代碼的作用是首先將word的可視屬性設置為“真”,然后再將word的標題改為“易語言word”,運行一下看看效果,是不是改變了?
以前我們用com對象操作word可以通過word對象提供的“quit”命令來結束word,但是并沒有相應的觸發事件,我們只能使用,不能在這些事件中處理其他事情,現在可以做到了,我們上面看到的窗體上畫的那個com控件就可以起到這個作用,我們在右邊組件箱中選擇這個控件畫到窗體上。
這個就是word對象中“Application”對象的所有觸發事件,我們在選擇“Application事件1”下來它的事件組合框選擇“quit”事件
會在代碼區生成一個“_Application事件1_Quit”子程序,我們再這個子程序下面輸入如下代碼
這只是“Application”對象的一個觸發事件,我們怎么才能觸發他呢?在“_按鈕2_被單擊”子程序中輸入如下代碼
現在我們運行代碼,先單擊按鈕1創建,再單擊按鈕2關閉 word,你會發現并沒有觸發“_Application事件1_Quit”事件,沒有彈出信息框,因為我們雖然調用了“_Application事件1_Quit”事件,但是并沒有將“_Application事件1_Quit”事件和“Application”掛鉤,我們必須在“__啟動窗口_創建完畢”將這個事件和“Application”掛鉤,不然是無法觸發這個事件的。
這樣我們運行 Word,單擊按鈕 2 結束,就會出現信息框了.
原文鏈接:https://blog.csdn.net/studyplus/article/details/21795125