- 积分
- 0
- 注册时间
- 2007-5-28
- 仿真币
-
- 最后登录
- 1970-1-1
|
发表于 2007-5-29 09:03:39
|
显示全部楼层
来自 安徽合肥
看这个例子,但我这个也有问题,不知道是不是fortran版本的问题
SUBROUTINE BBB(a,b,c)
!DEC$ATTRIBUTES DLLEXPORT :: BBB
INTEGER a
REAL b,c(2)
!DEC$ATTRIBUTES VALUE :: a
!DEC$ATTRIBUTES VALUE :: b
!DEC$ATTRIBUTES REFERENCE :: c
INTEGER i,j
real,INTRINSIC :: SIN
c(1)=a*1.0
c(2)=SIN(b*3.14159/180.)
END SUBROUTINE
vc调用dll文件如下:
HINSTANCE hIns;
hIns = LoadLibraryEx("aaa.dll",NULL,DONT_RESOLVE_DLL_REFERENCES);
typedef int (*MYPROC)(int &a, float b, float c[2]);
MYPROC fun= (MYPROC)GetProcAddress(hIns,"[email=_BBB@12]_BBB@12[/email]");
int a=5;
float b=float(4.2) ;
float c[2] ;
fun(a,b,c);
// a=b;
CString str;
str.Format("%f",c[1]);
MessageBox(str); |
|