我用__declspec(dllexport)VLENCODER f(...)创建了C语言的DLL;我想使用iso_c_binding功能从Fortran调用它。我声明了以下接口:
function create_vlencoder_c(appKey) bind(C, name="create_vlencoder")
use iso_c_binding
implicit none
type(c_ptr) :: create_vlencoder_c
character(len=1, kind=c_char), intent(in) :: appKey(*)
end function
但是,在链接时,编译器抱怨找不到_create_vlencoder符号。显然,依赖行者告诉我DLL中我的名字前面没有下划线。如何防止Fortran编译器在我的C函数名称中添加下划线?
PS:我在Windows上同时使用C和Fortran的英特尔编译器。
答案 0 :(得分:0)
对不起。我更是一个Unix用户,并不习惯于Visual Studio。 Fortran代码是32位,而C代码是64位,这会导致装饰上的差异,从而产生问题。