VC调用Fortran动态链接库
好久没来了,今天来问各位大侠一个问题!现在在搞VC调用fortran的DLL 的问题,但是在Fortran编译成DLL时就出现了问题,我用Fortran编译成的DLL用Depends.exe查看时看不到入口函数,不知道是什么原因,是Fortran编译器设置错误还是别的什么问题啊?我用的Fortran编译器为Miscrosoft Fortran Powerstation 4.0,用到的例子是在网上Copy的,如下:
function GetAdd(a, b) result(r)
implicit none
!DEC$ ATTRIBUTES DLLEXPORT::GetAdd
integer :: a
integer :: b
integer :: r
r = a + b
return
end
在VC中调用如下:
this->UpdateData();
HMODULE hDll = LoadLibraryEx(TEXT("testA.dll"), NULL,
DONT_RESOLVE_DLL_REFERENCES);
if (!hDll)
{
MessageBox("加载动态链接库失败", "ERROR", MB_OK);
return;
}
int (__stdcall *proc)(int *, int *); //注意声明方式指向函数的指针,要求有__stdcall
proc = (int (__stdcall *)(int *, int *))GetProcAddress(hDll, "GETADD");
if (!proc)
{
MessageBox("加载函数失败", "ERROR", MB_OK);
FreeLibrary(hDll);
return;
}
m_res = proc(&m_a, &m_b);
AfxMessageBox(s);
this->UpdateData(false);
FreeLibrary(hDll);
结果提示加载函数失败,不知道什么原因啊,希望哪位大侠给予解答,谢谢!