DLL(Dynamic Link Library)檔案為動態連結庫檔案,又稱“應用程式拓展”,是軟體檔案型別。在Windows中,許多應用程式並不是一個完整的可執行檔案,它們被分割成一些相對獨立的動態連結庫,即DLL檔案,放置於系統中。當我們執行某一個程式時,相應的DLL檔案就會被呼叫。一個應用程式可使用多個DLL檔案,一個DLL檔案也可能被不同的應用程式使用,這樣的DLL檔案被稱為共享DLL檔案。
DLL通過程式設計工具將寫好的程式碼經過編譯後就變成了dll.
方法/步驟
程式—dll命令—右鍵插入新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 結束,就會出現資訊框了.