當前位置:首頁 » 編程軟體 » cfortran混合編程

cfortran混合編程

發布時間: 2025-04-08 00:55:50

❶ fortran如何調用c語言函數,本人小白,求大神寫詳細點

你的想法,叫做 「混合編程」,簡稱「混編」。

混編有多種方式,一般有:
1.直接調用 C 編譯後的 exe
2.通過 DLL
3.通過靜態 lib
4.通過編譯器直接鏈接Fortran和C的obj

不管是 Fortran 還是 C 的語法,通常不會規定混編的具體內容。這些內容,是不同的編譯器自行規定的。(至少絕大多數是)

所以,具體的操作,也因你選擇的編譯器產品,因你選擇的混編方式,而有較大的不同。

所以,我建議你:
1.閱讀你使用的 C 編譯器和 Fortran 編譯器的幫助文檔,查看其中關於混合編程(mix-language)的章節。
2.如果你閱讀英文幫助有困難,至少告知你使用何種 C編譯器,何種 Fortran 編譯器。打算採用何種混編方式。

❷ 如何在C語言中調用FORTRAN生成的DLL里的函數

C語言和Fortran混合編程藉助於Fortran生成的DLL進行(採用C默認的傳址方式進行函數參數傳遞)方法和實例:
1.Fortran
生成DLL
新建Fortran
DLL程序test1.f
添加如下代碼:
! test1.f90

! FUNCTIONS/SUBROUTINES
exported from test1.dll:
! test1 -
subroutine
!示例沒有返回值的子常式
subroutine
test1(a,b)
! Expose subroutine test1 to
users of this DLL

!DEC$ ATTRIBUTES
C,DLLEXPORT::test1
! Variables
! Body of
test1
integer a,b
integer sum
sum=a+b
return
end subroutine
test1
!示例有返回值的整數四則運算
!兩數相加
function
add(a,b)
implicit none
!DEC$ ATTRIBUTES
C,DLLEXPORT::add
integer
a,b,add
add=a+b
return
end
!兩數相減
function
abstract(a,b)
implicit none
!DEC$ ATTRIBUTES
C,DLLEXPORT::abstract
integer
a,b,abstract
abstract=a-b
return
end
!兩數相乘
function
multiply(a,b)
implicit none
!DEC$ ATTRIBUTES
C,DLLEXPORT::multiply
integer
a,b,multiply
multiply=a*b
return
end
!兩數相除
(需要添加考慮被除數是否為0以及能否整除的判斷)
function
divided(a,b)
implicit none
!DEC$ ATTRIBUTES
C,DLLEXPORT::divided
integer
a,b,divided
divided=a/b
return
end
編譯後生成test1.dll,test1.obj等文件。其中這兩個文件是我們在VC中調用所需要的。

熱點內容
芳村萬科海上傳奇 發布:2025-09-24 14:19:22 瀏覽:513
前台加密後台解密 發布:2025-09-24 14:10:29 瀏覽:89
什麼id密碼可以下載安卓 發布:2025-09-24 13:36:54 瀏覽:623
win7如何登陸ftp 發布:2025-09-24 13:01:29 瀏覽:174
海信電視怎麼查看配置 發布:2025-09-24 13:00:31 瀏覽:783
android開發從零開始 發布:2025-09-24 12:51:28 瀏覽:113
為什麼安卓不支持群折疊 發布:2025-09-24 12:03:53 瀏覽:229
開放上網如何設密碼 發布:2025-09-24 11:31:08 瀏覽:566
編譯原理語義分析實驗報告 發布:2025-09-24 11:24:18 瀏覽:759
手機電腦文件夾同步 發布:2025-09-24 11:17:13 瀏覽:403