下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、VB調(diào)用C程序的方法動(dòng)態(tài)鏈接庫法文中介紹了一種實(shí)現(xiàn)VB調(diào)用C語言程序的方法動(dòng)態(tài)連接庫法,給出了動(dòng)態(tài)鏈接庫制作的一般框架,通過實(shí)例描述了動(dòng)態(tài)連接庫的實(shí)現(xiàn)及其制做方法、編程步驟,這種方法具有普遍的意義。關(guān)鍵詞 VB 動(dòng)態(tài)連接庫DLL C程序 一、引言 Visual Basic( 以下簡(jiǎn)稱VB)是一種可視化的面向?qū)ο蟮木幊陶Z言,以其編程簡(jiǎn)單、快捷等特點(diǎn),深受廣大WINDOWS程序員的青睞。利用VB開發(fā)界面友好、操作方便的軟件只需很短的時(shí)間。但是VB運(yùn)行速度較慢,對(duì)于龐大的科學(xué)計(jì)算問題,VB的這種慢速會(huì)使人難以忍受。C語言是國際上非常流行的一種
2、中級(jí)編程語言,以其靈活、高效等優(yōu)點(diǎn)而獲得廣泛應(yīng)用,許多的應(yīng)用程序都是用C語言在DOS環(huán)境下編寫而成。那么如何發(fā)揮VB和C這兩種語言的優(yōu)勢(shì),用VB設(shè)計(jì)一種良好的for windows界面來調(diào)用C語言程序,即實(shí)現(xiàn)VB調(diào)用C語言程序呢?現(xiàn)有的文獻(xiàn)只提到動(dòng)態(tài)鏈接庫(以下簡(jiǎn)稱DLL)可以將這兩種語言連接起來,但有講動(dòng)態(tài)鏈接庫DLL的制做及其編程方法。本文詳細(xì)介紹了Borland C環(huán)境下制作動(dòng)態(tài)鏈接庫以及VB調(diào)用for dos動(dòng)態(tài)鏈接庫的的方法、步驟,并通過實(shí)例描述VB調(diào)用C程序的全過程。二、用Borland C編寫DLL程序的方法
3、 要想實(shí)現(xiàn)VB調(diào)用C程序,首先需要用Borland C編寫動(dòng)態(tài)連接庫DLL程序(假設(shè)DLL程序取名為example)。動(dòng)態(tài)鏈接庫包含四個(gè)文件:C語言源程序(.C)、模塊定義文件(.DEF)、原型函數(shù)文件(.H)和工程文件(.PRJ)。下面分別詳細(xì)介紹一下這四種文件的具體結(jié)構(gòu)。1、編寫C語言源程序的框架:C語言源程序(example.C),它包括三種函數(shù):入口函數(shù)、輸出函數(shù)和終止函數(shù)。其具體結(jié)構(gòu)如下:/*/* 文件名: example.C */*/#include <windows.h>/*入口函數(shù)*/int FAR PASCAL LibMain ( HANDLE hIns
4、tance,WORD wDataSeg,WORD cbHeapSize,LPSTR lpszCmdLine )if (cbHeapSize!=0)UnlockData(0);return (1);/*輸出函數(shù)*/int FAR PASCAL example(int param1,.,char param n). /*C語言應(yīng)用程序*/ /*終止函數(shù)*/int FAR PASCAL WEP ( int /*SystemExit*/ )return(1); 以上各組成部分參數(shù)的含義:Windows.h頭文件,它包含有
5、數(shù)據(jù)類型的定義、API入口點(diǎn)定義和其它有用的參數(shù)信息。PASCAL說明符定義該程序的傳遞參數(shù)和凈化堆棧的協(xié)定(注意:DLL外部傳送的指針必須是遠(yuǎn)指針FAR)。LibMain帶四個(gè)參數(shù):hInstance、 wDataSeg、cbHeapSize和lpszCmdLine。第一個(gè)參數(shù)hInstance是DLL事例句柄, wDataSeg參數(shù)是數(shù)據(jù)段(DS)寄存器值,cbHeapSize參數(shù)是在模塊定義文件中定義的堆的大小,LibMain 使用該值使本地堆初始化。lpszCmdLine參數(shù)包括命令行信息,但很少被DLL使用。一般來說,這四個(gè)參數(shù)是制作DLL通用的參數(shù)。如果不想讓DLL數(shù)據(jù)被封住,那么
6、必須調(diào)用unlockdata恢復(fù)正常的非鎖狀態(tài),如果DLL初始化已經(jīng)成功,DLL則返回1,若不成功則返回0值,且 DLL退出系統(tǒng)。DLL的輸出函數(shù)實(shí)現(xiàn)用戶所要完成的任務(wù),這部分是DLL的核心。它與一般C語言程序不同之處在于無scanf函數(shù)。所有的外部指針都是遠(yuǎn)指針FAR。畫直線函數(shù)要用lineto函數(shù)。DLL包括一個(gè)終止函數(shù),終止函數(shù)有時(shí)稱為退出函數(shù),它的名字必須是WEP。且它可以被包括在DLL模塊定義文件的EXPORTS段中。 2、模塊定義文件(.DEF)的結(jié)構(gòu)和各段的意義模塊定義文件的結(jié)構(gòu)如下:/*/* 文件名: example.DEF */*/LIBRARY example /* DLL
7、name */DESCRIPTION ' example.DLL'EXETYPE WINDOWSCODE PRELOAD MOVEABLE DISCARDABLEDATA PRELOAD MOVEABLE SINGLEHEAPSIZE 1024EXPORTSexample 1WEP 2 關(guān)鍵字LIBRARY是把這個(gè)模塊視為一個(gè)DLL,庫的名字example跟在其后,且必須與該庫的名字、DEF中的DLL的文件名相一致。DESCRIPTION語句采用一個(gè)字符串,其長(zhǎng)度可達(dá)128 個(gè)字符,通常用它來保存模塊描述的信息。EXETYPE windows語句每個(gè)windows應(yīng)用程序和 DLL都需要。DATA語句定義該庫數(shù)據(jù)段的內(nèi)存屬性,關(guān)鍵字MOVEABLE允許內(nèi)存管理程序在 必要時(shí)移動(dòng)內(nèi)存段,關(guān)鍵字SINGLE是DLL必要,因?yàn)镈LL總是有一個(gè)單一數(shù)據(jù)段,而不管訪 問它的應(yīng)用程序的數(shù)量。HE
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能醫(yī)療設(shè)備研發(fā)與市場(chǎng)推廣合同3篇
- 2024生豬養(yǎng)殖基地與銷售商合作框架協(xié)議3篇
- 泡沫混凝土成套設(shè)備行業(yè)深度研究報(bào)告
- 2025年cfg樁基施工安全生產(chǎn)標(biāo)準(zhǔn)化建設(shè)合同3篇
- 2025年度寵物寵物醫(yī)院投資合作協(xié)議范本大全3篇
- 2025年度水利工程承包經(jīng)營權(quán)有償轉(zhuǎn)讓合同書4篇
- 中國車用滅火器項(xiàng)目投資可行性研究報(bào)告
- 功能型飲料行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及前景趨勢(shì)與投資分析研究報(bào)告
- 2025年度個(gè)人信用保證合同模板4篇
- 2025年度個(gè)人住宅衛(wèi)生間防水改造合同范本8篇
- 2025年急診科護(hù)理工作計(jì)劃
- 高中家長(zhǎng)會(huì) 高二寒假線上家長(zhǎng)會(huì)課件
- 違規(guī)行為與處罰管理制度
- 個(gè)人教師述職報(bào)告錦集10篇
- 四川省等八省2025年普通高中學(xué)業(yè)水平選擇性考試適應(yīng)性演練歷史試題(含答案)
- 《內(nèi)部培訓(xùn)師培訓(xùn)》課件
- 《雷達(dá)原理》課件-3.3.3教學(xué)課件:相控陣?yán)走_(dá)
- 西方史學(xué)史課件3教學(xué)
- 2024年中國醫(yī)藥研發(fā)藍(lán)皮書
- 紅色中國風(fēng)蛇年年會(huì)邀請(qǐng)函
- 廣東省佛山市 2023-2024學(xué)年五年級(jí)(上)期末數(shù)學(xué)試卷
評(píng)論
0/150
提交評(píng)論