我试图在用Fortran编写的程序中使用C ++编写的库中的函数。C ++库在一个头文件中进行了汇总,因此,如果您只想在另一个C ++程序中使用它,#include functions.h
我想了解如何在Fortran中执行类似的操作。
根据我的研究,我创建了这个最小可行的示例:
clib / functions.h:
#ifndef ADD_H
#define ADD_H
extern "C"
{
int __stdcall add(int x, int y);
}
#endif
Run Code Online (Sandbox Code Playgroud)
clib / functions.cpp:
extern "C"
{
int __stdcall add(int x, int y)
{
return x + y;
}
}
Run Code Online (Sandbox Code Playgroud)
cinclude.c
#include "clib/functions.h"
Run Code Online (Sandbox Code Playgroud)
cinterface.f95:
module cinterface
use,intrinsic::ISO_C_BINDING
integer(C_INT)::a,b
interface
integer(C_INT) function add(a,b) bind(C,name="add")
use,intrinsic::ISO_C_BINDING
implicit none
!GCC$ ATTRIBUTES STDCALL :: add
!DEC$ ATTRIBUTES STDCALL :: add
integer(C_INT), value ::a,b
end function add
end interface
end …
Run Code Online (Sandbox Code Playgroud)