c++调用DLL参数传递失败
我用C++编写程序调用一个FORTRAN编写的DLL文件,如果中间没有参数传递的话,可以正常运行,但是带参数调用的话就,参数的值无法改变,向高手求教,该如何解决,拜托拜托!!我用的是Visual Fortran 6和NetBeans 5.5!附上程序如下(中间没有参数传递的话可正常运行,现在是传址调用,改为引用调用也不行):
FORTRAN程序:
SUBROUTINE AVER[DLLEXPORT](AV)
IMPLICIT NONE
REAL AV
REAL A, B
READ *, A,B
AV = (A+B)/2
PRINT *, AV
END
C++程序:
#include <stdio.h>
#include <windows.h>
int main()
{
HINSTANCE hInst;
typedef void (*p)(double*);
p add;
double aver;
hInst = LoadLibrary("testDll.dll");
if(hInst == NULL) {
printf("Load dll error!\n");
return 0;
}
else {
printf("Load dll OK!\n");
add = (p)GetProcAddress(hInst, "AVER");
if(add == NULL) {
printf("Open dll function failed!\n");
return 0;
}
else {
printf("Open dll function OK!\n");
add(&aver);
printf("%f", aver);
}
}
FreeLibrary(hInst);
return 0;
}