首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 其他开发语言 >

Fortran调用vc的动态库,该如何处理

2012-03-12 
Fortran调用vc的动态库大家好,有个问题请教下。我有一个工程,用VC2005编译成了动态库,里面有三个API,其中一

Fortran调用vc的动态库
大家好,有个问题请教下。我有一个工程,用VC2005编译成了动态库,里面有三个API,其中一个的内部用到了STL的东西,但是函数接口仍是普通数据。另两个做例子的函数(简单地比大小,没有用任何STL的东西)的导出方式如下

#pragma once

#ifdef DLL_API
#else
#define DLL_API extern "C" _declspec(dllimport)
#endif

DLL_API int _MAXX(int a, int b);
DLL_API int _MINN(int a, int b);

我用其他软件看了DLL中的函数名,是对的,而且这个动态库经过测试是正确的。FORTRAN 代码如下

program main
interface
integer function MAXX(a,b)
!DEC$ATTRIBUTES DLLIMPORT,STDCALL,ALIAS:'?MAXX'::MAXX
integer a,b
end function MAXX
integer function MINN(c,d)
!DEC$ATTRIBUTES DLLIMPORT,STDCALL,ALIAS:'?MINN'::MINN
integer c,d
end function MINN
end interface 

integer aa,bb,cx,cd
aa=12
bb=21
cd=MAXX(aa,bb)
cx=MINN(aa,bb)

write(*,*)cx,cd
end program

我也已经把LIB的路径加到FORTRAN工程里面去了,但是链接的时候出错。

Linking...
main.obj : error LNK2001: unresolved external symbol _MINN@8
main.obj : error LNK2001: unresolved external symbol _MAXX@8
main.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
main.exe - 3 error(s), 0 warning(s)

请大家帮忙。谢谢!



[解决办法]
除了dll文件和路径,还要检查编译器设置和选项。

热点排行