這篇文章主要講解了“VB.NET動(dòng)態(tài)連接庫(kù)的方法”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“VB.NET動(dòng)態(tài)連接庫(kù)的方法”吧!
十多年的岱山網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣的優(yōu)勢(shì)是能夠根據(jù)用戶(hù)設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整岱山建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“岱山網(wǎng)站設(shè)計(jì)”,“岱山網(wǎng)站推廣”以來(lái),每個(gè)客戶(hù)項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
VB.NET動(dòng)態(tài)連接庫(kù)還是比較常用的,于是我研究了一下,在這里拿出來(lái)和大家分享一下,希望對(duì)大家有用。Windows動(dòng)態(tài)連接庫(kù)是包含數(shù)據(jù)和函數(shù)的模塊,可以被其它可執(zhí)行文件(EXE、DLL、OCX 等)調(diào)用。動(dòng)態(tài)連接庫(kù)包含兩種函數(shù):輸出(exported)函數(shù)和內(nèi)部(internal)函數(shù)。輸出函數(shù)可以被其它模塊調(diào)用,而內(nèi)部函數(shù)則只能在動(dòng)態(tài)連接庫(kù)內(nèi)部使用。
盡管VB.NET動(dòng)態(tài)連接庫(kù)也能輸出 數(shù)據(jù),但實(shí)際上它的數(shù)據(jù)通常是只在內(nèi)部使用的。使用動(dòng)態(tài)連接庫(kù)的優(yōu)點(diǎn)是顯而易見(jiàn)的。將應(yīng)用程序的一部分功能提取出來(lái)做成動(dòng)態(tài)連接庫(kù),不但減小了主應(yīng)用程序的大小,提高了程序 運(yùn)行效率,還使它更加易于升級(jí)。多個(gè)應(yīng)用程序共享一個(gè)動(dòng)態(tài)連接庫(kù)還能有效地節(jié)省系統(tǒng)資源。正因?yàn)槿绱?,在Windows系統(tǒng)中,動(dòng)態(tài)連接庫(kù)得到了大量的使用。
一般來(lái)說(shuō),動(dòng)態(tài)連接庫(kù)都是以DLL為擴(kuò)展名的文件,如Kernel32.dll、commdlg.dll等。但也有例外,如16位Windows的核心部件之一GDI.exe其實(shí)也是一個(gè)動(dòng)態(tài)庫(kù)。編寫(xiě)動(dòng)態(tài)連接庫(kù)的工具很多,如VisualC++、BorlandC++、Delphi等,具體方法可以參見(jiàn)相關(guān)文檔。下面只以Visual C++6.0為例,介紹一下開(kāi)發(fā)應(yīng)用于VisualBasic6.0的動(dòng)態(tài)連接庫(kù)時(shí)應(yīng)注意的問(wèn)題(本文中所有涉及C/C++語(yǔ)言或編譯環(huán)境的地方,都以VC為例;所有涉及Visual Basic的地方都以VB 為例)。
作為一種32位Windows應(yīng)用程序的開(kāi)發(fā)工具,VB生成的exe文件自然也都是32位的,通常情況下也只能調(diào)用32位的動(dòng)態(tài)連接庫(kù)。但是,并不是所有的32位動(dòng)態(tài)庫(kù)都能被VB生成的exe 文件正確地識(shí)別。一般來(lái)說(shuō),自己編寫(xiě)用于VB.NET動(dòng)態(tài)連接庫(kù)時(shí),應(yīng)注意以下幾個(gè)方面的
問(wèn)題:
1、生成動(dòng)態(tài)庫(kù)時(shí)要使用__stdcall調(diào)用約定,而不能使用缺省的__cdecl調(diào)用約定;__stdcall 約定通常用于32位API函數(shù)的調(diào)用。
2、在VC中的定義文件(.def)中,必須列出輸出函數(shù)的函數(shù)名,以強(qiáng)制VC系統(tǒng)將輸出函數(shù)的裝飾名(decoratedname)改成普通函數(shù)名;所謂裝飾名是VC的編譯器在編譯過(guò)程中生成的輸出函數(shù)名,它包含了用戶(hù)定義的函數(shù)名、函數(shù)參數(shù)及函數(shù)所在的類(lèi)等多方面的信息。由于在VC中定義文件不是必需的,因此工程不包含定義文件時(shí)VC就按自己的約定將用戶(hù)定義的輸出函數(shù)名修改成裝飾名后放到輸出函數(shù)列表中,這樣的輸出函數(shù)在VB生成的應(yīng)用程序中是不能正確調(diào)用的(除非聲明時(shí)使用Alias子句)。因此需要增加一個(gè).def文件,其中列出用戶(hù)需要的函數(shù)名,以強(qiáng)制VC不按裝飾名進(jìn)行輸出。
3、VC中的編譯選項(xiàng)"結(jié)構(gòu)成員對(duì)齊方式(structure member alignment)" 應(yīng)設(shè)成4字節(jié),其原因?qū)⒃诤笪脑敿?xì)介紹。
4、由于在C中整型變量是4個(gè)字節(jié),而VB中的整型變量依然只有2個(gè)字節(jié),因此在C中聲 明的整型(int)變量在VB中調(diào)用時(shí)要聲明為長(zhǎng)整型(long),而C中的短整型(short)在VB中則 要聲明成整型(integer);下表針對(duì)最常用的C語(yǔ)言數(shù)據(jù)類(lèi)型列出了與之等價(jià)的Visual Basic 類(lèi)型(用于32位版本的Windows)。
感謝各位的閱讀,以上就是“VB.NET動(dòng)態(tài)連接庫(kù)的方法”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)VB.NET動(dòng)態(tài)連接庫(kù)的方法這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
文章題目:VB.NET動(dòng)態(tài)連接庫(kù)的方法
本文URL:http://jinyejixie.com/article20/jjihjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開(kāi)發(fā)、建站公司、微信公眾號(hào)、網(wǎng)站內(nèi)鏈、企業(yè)網(wǎng)站制作、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)