vb與fortran的混合編程

vb與fortran的混合編程

ID:13979983

大?。?5.00 KB

頁數(shù):10頁

時(shí)間:2018-07-25

vb與fortran的混合編程_第1頁
vb與fortran的混合編程_第2頁
vb與fortran的混合編程_第3頁
vb與fortran的混合編程_第4頁
vb與fortran的混合編程_第5頁
資源描述:

《vb與fortran的混合編程》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、VB與Fortran的混合編程一、實(shí)驗(yàn)?zāi)康?.掌握VB和Fortran混合編程的方法。2.掌握Fortran中動(dòng)態(tài)鏈接庫的創(chuàng)建方法。3.掌握VB中對動(dòng)態(tài)鏈接庫的調(diào)用方法。二、實(shí)驗(yàn)原理一般VB與Fortran混合編程的方法主要有兩種,即VB中直接調(diào)用可執(zhí)行文件(利用Shell函數(shù)直接調(diào)用Fortran編譯出來的可執(zhí)行文件)和利用動(dòng)態(tài)鏈接庫DLL(DynamicLinkLibrary)與Fortran混合編程。第一種方法比較簡單,將Fortran源程序編譯為可執(zhí)行文件(擴(kuò)展名為.exe)之后在VB環(huán)境下用shell()函數(shù)調(diào)用即可。這種方法適合于計(jì)

2、算量較大而交互操作不多的時(shí)候。但是,Shell函數(shù)是以異步方式執(zhí)行的,這種執(zhí)行方式使VB程序不能等待Fortran程序計(jì)算結(jié)束,而是繼續(xù)執(zhí)行后續(xù)的程序,從而容易使最終結(jié)果出錯(cuò)。第二種方法是將Fortran源程序編譯為動(dòng)態(tài)鏈接庫(擴(kuò)展名為.dll),然后在VB環(huán)境下調(diào)用動(dòng)態(tài)鏈接庫里的函數(shù)和過程來完成各項(xiàng)計(jì)算任務(wù)。雖然沒有第一種方法操作簡單,但是調(diào)用動(dòng)態(tài)鏈接庫的方法更為靈活和實(shí)用。三、Fortran中動(dòng)態(tài)鏈接庫(.dll文件)的創(chuàng)建在CompaqVisualFortran6.5中創(chuàng)建“.Dll”文件的步驟如下:1)創(chuàng)建dll項(xiàng)目(Project)跟

3、一般的Fortran項(xiàng)目相似,首先要?jiǎng)?chuàng)建一個(gè)dll項(xiàng)目,具體步驟如下:點(diǎn)擊File——New,在彈出的new對話框中選擇Projects項(xiàng)下的DynamicLinkLibrary,在右側(cè)ProjectName下面的文本框中輸入項(xiàng)目名稱,在Location下的文本框中選好路徑之后點(diǎn)擊Ok,這樣我們就創(chuàng)建了一個(gè)空的dll項(xiàng)目文件。2)在dll項(xiàng)目中添加文件在剛才創(chuàng)建的dll項(xiàng)目中添加一個(gè)空文件,這跟普通的Fortran項(xiàng)目中添加文件的方法一樣。點(diǎn)擊file——new,在彈出的new對話框中選擇Files項(xiàng),在列表框中選擇文件類型(單擊選中即可),一

4、般選擇FortranFixedformatSourceFiles(固定格式源文件)或FortranFreeformatSourceFiles(自由格式源文件),在右邊File標(biāo)簽下的文本框中輸入源文件名,點(diǎn)擊OK,一個(gè)空的源文件就建好了,接下來可以在里面編寫Fortran源程序了。3)創(chuàng)建子程序(過程)和函數(shù)Dll文件是一種特殊的可執(zhí)行文件,在其源程序中沒有主程序,而是一個(gè)或多個(gè)子程序或函數(shù),我們通過調(diào)用這些子程序和函數(shù)來完成一些特定的任務(wù)。在Dll項(xiàng)目中創(chuàng)建子程序和函數(shù)的方法跟一般Fortran項(xiàng)目文件中的沒有太大的差別,只需在子程序或函數(shù)開

5、始時(shí)加入如下一些微軟擴(kuò)展屬性編譯偽指令即可:!MS$attributesdllexport!MS$attributesalias!MS$attributesvalue!MS$attributesreference例如,如果要編寫一個(gè)計(jì)算雙精度實(shí)數(shù)加法的子程序,子程序名為subplus,輸入?yún)?shù)為a和b,輸出參數(shù)為c,則完整的源程序可以這樣寫:subroutinesubplus(a,b,c)!MS$attributesdllexport::subplus!MS$attributesalias:'subplus'::subplus!MS$attri

6、butesvalue::a,b!MS$attributesreference::creal(8)::a,b,cc=a+breturnendsubroutinesubplus一般情況下我們將輸入?yún)?shù)定義為傳遞數(shù)值方式,而將輸出變量定義為傳遞地址方式。像這樣添加一些子程序函數(shù),然后可以將他們編譯和生成dll文件(快捷鍵是F7)。之后在該項(xiàng)目文件目錄下的debug文件夾中可以找到這個(gè)以項(xiàng)目名稱命名的dll文件,我們可以在VB環(huán)境中調(diào)用它。四、VB2005中對動(dòng)態(tài)鏈接庫的調(diào)用VB對動(dòng)態(tài)鏈接庫的調(diào)用如同對普通子程序或函數(shù)的調(diào)用,在調(diào)用之前必須先對Dll中

7、的子程序或函數(shù)聲明。聲明格式如下:[Public

8、Private]DeclareSub

9、FunctionNameLib“Libname”[Alias“aliasname”][([arglist])]例如在C盤根目錄下有一個(gè)名為mathfunction.dll的動(dòng)態(tài)鏈接庫,我們對這個(gè)庫中名為subplus的子程序的聲明如下:PublicDeclareSubsubplusLib"C:mathfunction.dll"(ByValaAsDouble,ByValbAsDouble,ByRefcAsDouble)在聲明之后這些函數(shù)或過程就可以向普通的函

10、數(shù)或過程一樣在VB環(huán)境下調(diào)用了。五、實(shí)驗(yàn)內(nèi)容用Fortran編寫一個(gè)Dll文件,其中包含計(jì)算兩個(gè)雙精度實(shí)數(shù)加、減、乘、除的過程和函數(shù),而后在VB環(huán)境下

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。