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

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:724
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:990
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:699
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:855
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:756
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1097
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:329
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:205
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:895
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:854