成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

關(guān)于VB.NET動態(tài)連接庫使用四點總結(jié)

開發(fā) 后端
這里就VB.NET動態(tài)連接庫的使用問題應(yīng)該注意的四點歸納總結(jié),希望大家看過之后有技術(shù)上的提高。

VB.NET動態(tài)連接庫還是比較常用的,于是我研究了一下,在這里拿出來和大家分享一下,希望對大家有用。Windows動態(tài)連接庫是包含數(shù)據(jù)和函數(shù)的模塊,可以被其它可執(zhí)行文件(EXE、DLL、OCX 等)調(diào)用。動態(tài)連接庫包含兩種函數(shù):輸出(exported)函數(shù)和內(nèi)部(internal)函數(shù)。輸出函數(shù)可以被其它模塊調(diào)用,而內(nèi)部函數(shù)則只能在動態(tài)連接庫內(nèi)部使用。

盡管VB.NET動態(tài)連接庫也能輸出 數(shù)據(jù),但實際上它的數(shù)據(jù)通常是只在內(nèi)部使用的。使用動態(tài)連接庫的優(yōu)點是顯而易見的。將應(yīng)用程序的一部分功能提取出來做成動態(tài)連接庫,不但減小了主應(yīng)用程序的大小,提高了程序 運行效率,還使它更加易于升級。多個應(yīng)用程序共享一個動態(tài)連接庫還能有效地節(jié)省系統(tǒng)資源。正因為如此,在Windows系統(tǒng)中,動態(tài)連接庫得到了大量的使用。

#T#一般來說,動態(tài)連接庫都是以DLL為擴展名的文件,如Kernel32.dll、commdlg.dll等。但也有例外,如16位Windows的核心部件之一GDI.exe其實也是一個動態(tài)庫。編寫動態(tài)連接庫的工具很多,如VisualC++、BorlandC++、Delphi等,具體方法可以參見相關(guān)文檔。下面只以Visual C++6.0為例,介紹一下開發(fā)應(yīng)用于VisualBasic6.0的動態(tài)連接庫時應(yīng)注意的問題(本文中所有涉及C/C++語言或編譯環(huán)境的地方,都以VC為例;所有涉及Visual Basic的地方都以VB 為例)。

作為一種32位Windows應(yīng)用程序的開發(fā)工具,VB生成的exe文件自然也都是32位的,通常情況下也只能調(diào)用32位的動態(tài)連接庫。但是,并不是所有的32位動態(tài)庫都能被VB生成的exe 文件正確地識別。一般來說,自己編寫用于VB.NET動態(tài)連接庫時,應(yīng)注意以下幾個方面的

問題:

1、生成動態(tài)庫時要使用__stdcall調(diào)用約定,而不能使用缺省的__cdecl調(diào)用約定;__stdcall 約定通常用于32位API函數(shù)的調(diào)用。

2、在VC中的定義文件(.def)中,必須列出輸出函數(shù)的函數(shù)名,以強制VC系統(tǒng)將輸出函數(shù)的裝飾名(decoratedname)改成普通函數(shù)名;所謂裝飾名是VC的編譯器在編譯過程中生成的輸出函數(shù)名,它包含了用戶定義的函數(shù)名、函數(shù)參數(shù)及函數(shù)所在的類等多方面的信息。由于在VC中定義文件不是必需的,因此工程不包含定義文件時VC就按自己的約定將用戶定義的輸出函數(shù)名修改成裝飾名后放到輸出函數(shù)列表中,這樣的輸出函數(shù)在VB生成的應(yīng)用程序中是不能正確調(diào)用的(除非聲明時使用Alias子句)。因此需要增加一個.def文件,其中列出用戶需要的函數(shù)名,以強制VC不按裝飾名進行輸出。

3、VC中的編譯選項"結(jié)構(gòu)成員對齊方式(structure member alignment)" 應(yīng)設(shè)成4字節(jié),其原因?qū)⒃诤笪脑敿毥榻B。

4、由于在C中整型變量是4個字節(jié),而VB中的整型變量依然只有2個字節(jié),因此在C中聲 明的整型(int)變量在VB中調(diào)用時要聲明為長整型(long),而C中的短整型(short)在VB中則 要聲明成整型(integer);下表針對最常用的C語言數(shù)據(jù)類型列出了與之等價的Visual Basic 類型(用于32位版本的Windows)。

責任編輯:田樹 來源: 博客
相關(guān)推薦

2009-11-10 16:37:48

VB.NET ANY

2009-11-10 15:30:46

VB.NET編程原則

2009-10-22 17:28:22

VB.NET變量

2009-10-13 17:31:50

VB.NET Acce

2009-11-10 15:36:24

VB.NET命名約定

2009-11-10 13:08:13

VB.NET編程技巧

2009-11-02 13:14:18

VB.NET函數(shù)

2010-01-20 17:54:13

VB.NET特殊字符

2009-10-12 15:44:26

VB.NET動態(tài)編碼技

2010-01-20 10:56:14

VB.NET Main

2009-11-10 10:28:20

VB.NET誕生

2009-10-12 15:02:51

VB.NET動態(tài)控件

2010-01-12 16:39:26

VB.NET數(shù)據(jù)綁定

2009-10-28 09:21:19

VB.NET技術(shù)

2009-11-03 10:51:33

VB.NET共享

2010-01-14 19:09:02

VB.NET動態(tài)標題

2009-10-26 15:57:07

VB.NET使用Ora

2009-11-03 13:48:02

VB.NET枚舉

2009-10-09 15:20:26

VB.NET連接數(shù)據(jù)庫

2010-01-07 13:51:50

VB.NET數(shù)組賦值
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲欧美另类在线观看 | 一区二区三区在线播放 | 久久久久久久久久性 | 亚洲精品一区二区在线观看 | 波多野结衣一区二区 | 伊人网站| 成人午夜精品一区二区三区 | 91在线视频免费观看 | 亚洲最大的黄色网址 | 国产激情一区二区三区 | 欧洲亚洲精品久久久久 | 国产精品久久久久久妇女6080 | 涩在线| 美女视频黄色片 | 久久综合狠狠综合久久综合88 | 亚洲欧美精品在线观看 | 国产精品免费小视频 | a级片网站| 欧美激情精品久久久久久变态 | 亚洲毛片| 欧美激情久久久 | 日本中文字幕日韩精品免费 | 日韩三级免费观看 | 91视频在线 | 四虎影院在线播放 | 伊人99 | 在线āv视频 | 亚洲色图第一页 | 欧美日韩精品久久久免费观看 | 91在线电影| 亚洲欧美激情精品一区二区 | se婷婷| 天天射影院 | 一区二区三区免费 | 中文字幕日韩欧美一区二区三区 | 久久里面有精品 | 亚洲一区| 亚洲精品99 | 欧美激情综合五月色丁香小说 | 亚洲精品一区二区 | 黄a在线播放 |