各位,有没有人用过vc与FORTRAN 的混合编程啊??我作了一个例子,总是出错,麻烦大家帮忙看看!谢谢

qdljr 2008-07-08 02:22:00

!vc调用vf动态链接库文件
!例子为彭国伦书上的。只是想改为通过vc来调用。
subroutine TEST()
!DEC$ ATTRIBUTES DLLEXPORT::TEST

IMPLICIT NONE
INTEGER ,PARAMETER::FILEID=10
CHARACTER(LEN=20)::FILENAME="LIST.BIN"
INTEGER PLAYER
REAL::HIT(9)=(/3.2,2.8,2.2,6.1,5.5,4.5,2.3,1.2,1.8/)
OPEN(UNIT=FILEID,FILE=FILENAME,FORM="UNFORMATTED",ACCESS="DIRECT",
& RECL=1,STATUS="REPLACE")
DO PLAYER=1,9
!照下面的写法,此处总是报错,具体表现为vc调用时总是找不到动态链接库文件
WRITE(FILEID,rec=PLAYER)HIT(PLAYER)
ENDDO
CLOSE(FILEID)

!如果改为下面的形式则不会报错,不知道什么原因??,但已经不是二进制了...
! OPEN(UNIT=FILEID,FILE=FILENAME)
! DO PLAYER=1,9
! WRITE(FILEID,*)HIT(PLAYER)
! ENDDO

END


VC++调用代码


typedef void (_stdcall * wndProc)();
HINSTANCE hLibrary=LoadLibrary("test.dll");
if(hLibrary==NULL)
{
AfxMessageBox( "can't find the dll file");
}
wndProc test=(wndProc)GetProcAddress(hLibrary,"TEST");
if(test==NULL)
{
AfxMessageBox("can't find the function file");

}
test();


...全文
71 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
fox000002 2008-07-08
  • 打赏
  • 举报
回复
建议用 dependencies 或 exescope 看看 Fortran DLL 的 import

15,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧