溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

易語言中如何制作動態(tài)鏈接庫

發(fā)布時間:2021-06-17 12:51:38 來源:億速云 閱讀:292 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關易語言中如何制作動態(tài)鏈接庫的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

一.關于易語言 DLL

從易語言 3.6 版開始,已經能夠支持對DLL動態(tài)鏈接庫的開發(fā), 編譯出的DLL是標準的DLL,和其他編程語言生成的標準 DLL 的調用方法相同。易語言編寫出的DLL,在非獨立編譯exe時只需要DLL文件隨應用程序一起發(fā)行,而獨立編譯 exe 時無需將 DLL 文件隨應用程序一起發(fā)行。

二.新建易語言DLL程序

新建一個易語言程序,然后選擇 “windows動態(tài)鏈接庫”圖標,易語言就會自動創(chuàng)建

出編寫態(tài)連接庫的代碼區(qū)(程序集)

創(chuàng)建完畢就可以在代碼區(qū)里編寫DLL程序。

三.如何生成動態(tài)連接庫 (DLL)

易語言中的 DLL 編寫方法和易模塊的編寫方法類似,都需要有對外的公開接口。下面將通過編寫一個“自創(chuàng)信息框”來看一下用易語言如何編寫和調用DLL。

編寫DLL時的公開接口只能由以下方式生成,新建一個子程序,然后把“公開”選中,在DLL中任何程序集中選中“公開”的子程序都作為對外接口:

修改一下子程序名稱,叫“自創(chuàng)信息框”,然后創(chuàng)建2個參數“標題”和“內容”,都定義成整數型:

注意:目前DLL接口函數中的參數只能為以下9種之一:

字節(jié)型、短整數型、整數型、長整數型、小數型、雙精度小數型、邏輯型、日期時間型、子程序指針型

定義好DLL參數后,我們可以創(chuàng)建新窗體作為信息框窗口,在新窗體上畫一個按鈕,一個標簽,為了讓用戶按下確定按鈕后,窗口能關閉,可以雙擊確定按鈕,創(chuàng)建按鈕“被單擊”的觸發(fā)事件,寫入代碼:

然后返回到剛才的程序集1代碼區(qū)開始編寫代碼。

由于2個參數都定義成了整數型,而調用的時候傳遞過來的標題和內容一定是文本型的,那么怎樣去取得里面內容呢?別急,易語言3.6版中考慮到了這個問題,所以新增加了3個命令:“指針到文本”、“指針到字節(jié)集”、“寫到內存”。

當用戶傳遞的是文本型或者字節(jié)集型,易語言將自動轉換成指針,我們可以使用“指針到文本”或“指針到字節(jié)集”把原來的文本返回出來。如下圖所示:

到此已經完成“自創(chuàng)信息框DLL”所有工作,最后可以選擇菜單“程序”→“編譯”將其編譯為DLL。如下圖所示:

也可以使用快捷鍵“F7”編譯剛剛編寫的DLL,我們將編譯以后的DLL名稱命名為“自創(chuàng)信息框”,如下圖所示:

通過以上,用易語言編寫DLL的過程序基本完成。

四.如何使用DLL

用易語言編寫的DLL可以在易語言自身調用,同樣,也可以在其他編程語言中調用,如(VB,VC,Delphi等)

在易語言中的調用方法如下圖所示:

注意:定義時,2個參數都定義成文本型

最后請在窗體上畫一個按鈕,雙擊按鈕,寫上代碼調用這個DLL,按下按鈕后,就會看到效果了!

注意事項:

1:調用DLL時的Dll對應命令名必須和接口名稱完全一樣。

2:接口函數的參數必須是基本數據類型,且不能為字節(jié)集型、文本型。

3:易語言3.6版中新增加3個命令“指針到文本”、“指針到字節(jié)集”、“寫到內存”,這3個命令最佳使用場合就是在易語言回調子程序和易語言DLL公開子程序用作獲取外部數據。在Dll中使用文本參數的方法請參考“取漢字拼音.rar”程序

4:易語言編寫的DLL如果要在其他編程語言中使用,必須附帶對應的易語言支持庫

1. 如何在易語言中調用類型庫

Q: What's 類型庫?

A: 類型庫是一個描述信息的集合,這些描述信息涉及組件的類、接口及接口上的方法以及這些方法的參數類型。類型庫通過 ITYPELIB 接口來訪問,用他可以輕松的解決如用戶界面等問題,使程序開發(fā)更加的簡單。

現在在“易語言”中,也可以使用類型庫了,那么如何調用類型庫呢?

首先運行“易語言”選擇“工具”→“封裝類型庫及OCX組件”菜單

會出現一個注冊OCX及類型庫的窗口

我們向下拖動滾動條,可以看到一個類型庫的分類,在這個分類之前的就是我們系統中的OCX組件,這個我們已經非常熟悉了,這里就不作說明了,在類型庫的分類之后,就是我們系統中有的類型庫,我們可以選擇我們需要使用的注冊。

我們可以選擇我們需要的類型庫之后選擇“下一步”

之后我們會看到一個類似我們使用過的OCX注冊那樣的窗口,我們可以在這里對這個類型庫作一些漢化等操作

在完成了我們所需要的漢化工作之后,我們可以點擊“保存”按鈕來保存我們剛才的操作

點擊保存之后,會有提示信息提示你是否要把我們注冊好的類型庫保存到“易語言”目錄中去

我們選擇“是”之后,會提示我們安裝成功

這時我們再運行“易語言”,在支持庫中,就會看到我們剛才注冊的類型庫。

到這里我們已經完成把類型庫注冊到“易語言”中的工作了,下面在讓我們來了解一下如何在易語言中使用這些類型庫

首先我們展開數據類型

我們會看到他下面有很多類型,而這些類型下面又有很多命令,我們可以把它們看作是定義好了的自定義數據,每一個類型就是自定義數據類型的一個類型名,下面的每一個命令都是一個成員。

那么我們怎么使用他們呢?

首先創(chuàng)建一個變量,他的類型就是這些項目的名稱,我們可能在類型選擇中找不到這些,我們可以點擊這項來展開所有的類型,就會發(fā)現我們需要的。

選擇我們需要的類型就可以了

具體的使用方法就和使用自定義數據類型一樣,直接使用我們選擇類型中的命令就可以了,如果還不能理解,想一下字體是怎么用的?定義“字體”為字體類型,使用“字體.加粗=真 ”方法是一樣。

我們再回過頭來看一下,把滾動條向下拉,我們會看到一些事件

箭頭所示的就是office類型庫包括的事件,這些事件如何使用呢

我們會發(fā)現在控件箱中多出了一些控件,這些控件就是剛才我們注冊的類型庫的觸發(fā)事件,我們需要使用它的時候,就可其他組件一樣把它拖放到窗體上就可以了

這是我們會發(fā)現在屬性中多出一個控件,我們選擇該控件的觸發(fā)事件就可以了

他的使用和其他觸發(fā)事件是一樣的

到這里,我們已經了解了在“易語言”中是如何使用類型庫了,是不是很簡單?其實類型庫的使用就和其他的命令沒有什么區(qū)別,不要感覺它多么深奧,只要我們有健全的資料就可以很好的使用它們?yōu)槲覀儗懗龊芎玫能浖?/p>

2. 如何在易語言中使用類型庫

如何在易語言中使用類型庫,我們下面用一個小例程來說明,首先打開“易語言”

選擇“工具”→“封裝類型庫及OCX組件”注冊word類型庫。

然后左邊支持庫表中會出現word的類型庫

然后我們在窗體中畫上兩個按鈕以便我們使用,至于旁邊畫的那個com控件我們等一下

現在我們開始寫入代碼,如果按照com對象的方法來操作word,我們就要先創(chuàng)建一個word的對象,連接“Word.Application”,其實這也是調用“word”對象中的“Application”對象,但是現在不用這樣了,通過類型庫我們可以直接來操作“Application”首先我們創(chuàng)建一個程序集變量,類型為“Application” ,這樣我們就可以直接操作“Application”中的命令

在“_按鈕1_被單擊”事件中輸入

這兩行代碼的作用是首先將word的可視屬性設置為“真”,然后再將word的標題改為“易語言word”,運行一下看看效果,是不是改變了?

以前我們用com對象操作word可以通過word對象提供的“quit”命令來結束word,但是并沒有相應的觸發(fā)事件,我們只能使用,不能在這些事件中處理其他事情,現在可以做到了,我們上面看到的窗體上畫的那個com控件就可以起到這個作用,我們在右邊組件箱中選擇這個控件畫到窗體上。

這個就是word對象中“Application”對象的所有觸發(fā)事件,我們在選擇“Application事件1”下來它的事件組合框選擇“quit”事件

會在代碼區(qū)生成一個“_Application事件1_Quit”子程序,我們再這個子程序下面輸入如下代碼

這只是“Application”對象的一個觸發(fā)事件,我們怎么才能觸發(fā)他呢?在“_按鈕2_被單擊”子程序中輸入如下代碼

現在我們運行代碼,先單擊按鈕1創(chuàng)建,再單擊按鈕2關閉 word,你會發(fā)現并沒有觸發(fā)“_Application事件1_Quit”事件,沒有彈出信息框,因為我們雖然調用了“_Application事件1_Quit”事件,但是并沒有將“_Application事件1_Quit”事件和“Application”掛鉤,我們必須在“__啟動窗口_創(chuàng)建完畢”將這個事件和“Application”掛鉤,不然是無法觸發(fā)這個事件的。

這樣我們運行 Word,單擊按鈕 2 結束,就會出現信息框了.

感謝各位的閱讀!關于“易語言中如何制作動態(tài)鏈接庫”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI