淺談VisualC與VisualBasic的混合編程_第1頁(yè)
淺談VisualC與VisualBasic的混合編程_第2頁(yè)
淺談VisualC與VisualBasic的混合編程_第3頁(yè)
淺談VisualC與VisualBasic的混合編程_第4頁(yè)
淺談VisualC與VisualBasic的混合編程_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

提綱關(guān)于編程認(rèn)識(shí)DLLVC6.0中如何開發(fā)DLL程序VB6.0中如何調(diào)用DLL程序一個(gè)例子一、關(guān)于編程編程就是指令的合理組合因此,指令決定了編程的能力什么指令功能最強(qiáng)?函數(shù)的來源語(yǔ)言附帶的庫(kù)操作系統(tǒng)的開發(fā)庫(kù)可執(zhí)行程序的生成編譯(Compile)鏈接(Link)關(guān)于編程(續(xù))編譯將源代碼處理成目標(biāo)機(jī)器上的機(jī)器語(yǔ)言模塊鏈接將編譯得到的機(jī)器語(yǔ)言與系統(tǒng)提供的函數(shù)庫(kù)聯(lián)系起來打個(gè)比喻編譯→有人把一本學(xué)術(shù)著作翻譯成了中文鏈接→把書中的術(shù)語(yǔ)給你解釋清楚函數(shù)庫(kù)的分類靜態(tài)庫(kù).LIB鏈接時(shí)將相關(guān)函數(shù)代碼放入到應(yīng)用程序中應(yīng)用程序體積大,啟動(dòng)速度慢優(yōu)點(diǎn)是對(duì)運(yùn)行環(huán)境無依賴性動(dòng)態(tài)庫(kù)一般封裝成DLL鏈接時(shí)僅進(jìn)行符號(hào)鏈接程序運(yùn)行時(shí)再?gòu)暮瘮?shù)庫(kù)中加載所需的函數(shù)代碼應(yīng)用程序體積小,啟動(dòng)快對(duì)運(yùn)行環(huán)境依賴性大靜態(tài)鏈接庫(kù)靜態(tài)庫(kù)只能給C語(yǔ)言兼容的開發(fā)語(yǔ)言使用演示如何利用VC制作靜態(tài)鏈接庫(kù)如何使用靜態(tài)庫(kù)二、動(dòng)態(tài)鏈接庫(kù)DLLDLLDynamicLinkableLibrary是實(shí)現(xiàn)共享代碼的一種方式DLL的使用與語(yǔ)言無關(guān)(可以用VB)DLL隨處可見VC的DLL的分類NON-MFCDLLMFC-RegularDLLMFCExtensionDLL認(rèn)識(shí)DLL如何查看DLL中暴露出的函數(shù)MicrosoftVisualStudio中Depends工具VB、VC混合編程什么是混合編程一個(gè)應(yīng)用軟件系統(tǒng)中,不同的模塊采用不同的編程語(yǔ)言開發(fā)VB和VC的分工VB負(fù)責(zé)界面,人機(jī)交互,用戶響應(yīng)VC負(fù)責(zé)復(fù)雜的算法,計(jì)算或者訪問硬件VB、VC混合編程的方式通過DLL←VC生成DLL,在VB中調(diào)用常用,簡(jiǎn)單ActiveX控件的方法VC生成控件,在VB中調(diào)用更通用,較復(fù)雜ActiveXAutomation服務(wù)器的方法VC生成應(yīng)用服務(wù)器,在VB或者VBA中調(diào)用最復(fù)雜的一種方法,適合大型軟件的二次開發(fā)VC編寫VB可以使用的DLL(1)不是任何VC編寫的DLL,VB都可以使用只有RegularDLL才有可能被VB使用VB中對(duì)函數(shù)的聲明必須與VC中對(duì)函數(shù)的聲明絕對(duì)一致才行兩個(gè)必備條件,缺一不可VC中聲明函數(shù)的調(diào)用方式為stdcallVC中聲明的函數(shù)必須被exportVC編寫VB可以使用的DLL(2)一定要寫定義文件(*.def)LIBRARYTestAddEXPORTSadd@1舉例Add.h#ifndefADD_H#defineADD_Hextern"C"int__stdcalladd(inta,intb);#endifAdd.cpp#include"add.h"int__stdcalladd(inta,intb){ returna+b;}注意事項(xiàng)(1)注意不同語(yǔ)言對(duì)類型的定義不同VB中Integer-VC中的shortVB中的Long-VC中的int結(jié)構(gòu)尤其要注意,C語(yǔ)言存在著對(duì)齊的問題例如:TypePerson

AgeAsLong

HeightAsDouble

EndType注意事項(xiàng)(2)大數(shù)據(jù)量的傳遞(VB到VC)用數(shù)組,用指針(地址)VB將數(shù)組首字節(jié)地址以及數(shù)組長(zhǎng)度傳遞給VCVC程序中利用地址和長(zhǎng)度訪問數(shù)據(jù)注意VB中函數(shù)聲明的byVal和byRefbyVal相當(dāng)于VC中的傳值ByRef相當(dāng)于VC中的傳地址(指針)注意事項(xiàng)(3)大數(shù)據(jù)量的傳遞(VC到VB)如果VB負(fù)責(zé)申

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論