當前位置:首頁 » 編程軟體 » 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中調用所需要的。

熱點內容
python前一天的日期 發布:2025-04-08 06:21:15 瀏覽:256
下載什麼解壓軟體 發布:2025-04-08 06:15:38 瀏覽:199
ftp帶密碼登錄 發布:2025-04-08 06:14:30 瀏覽:785
汽車編程解碼 發布:2025-04-08 06:08:30 瀏覽:311
安卓手機怎麼設置無線 發布:2025-04-08 06:04:12 瀏覽:736
電腦獨立密碼是什麼樣的 發布:2025-04-08 06:03:33 瀏覽:910
萬能解壓王解壓完了怎麼用 發布:2025-04-08 05:58:53 瀏覽:897
dns的伺服器默認地址是多少 發布:2025-04-08 05:49:36 瀏覽:919
指導生活的演算法 發布:2025-04-08 05:39:40 瀏覽:336
androidusb上網 發布:2025-04-08 05:38:53 瀏覽:668