最近在做毕业设计,按照老师的思路,直接调用Fortran函数,因此想直接利用Qt调用Fortran生成的dll。

遂将直接调用生成的dll,但是发现总是提醒"Cannot resolve symbol "add" in G:/Qt_PRO/Call_FortanDll/add.dll: 找不到指定的程序。"

利用IVF创建dll with Sample code 项目,在生成的代码中发现这么一句:

!DEC$ ATTRIBUTES DLLEXPORT::SP

百度之后发现,这句话对于Qt查找dll中函数提供一个接口,是必须添加的,否则便会出现上面提到的问题。Fortran 语言本身对大小写并不敏感,Qt或者C++是区分大小写的,但是Fortran编辑器默认导出函数全名为大写形式,因此在

!DEC$ ATTRIBUTES DLLEXPORT::SP,SP位置必须为大写,否则便会出现问题:

"Cannot resolve symbol "TestDll" in G:/Fortran/Marine/DLL/TestDll/TestDll/Debug/TestDll.dll: 找不到指定的程序。"

后续关于dll调用遇到的问题在添加。

参考原文:

http://www.cnblogs.com/xiaoyusmile/p/CPP%E8%B0%83%E7%94%A8Fortran%E7%A8%8B%E5%BA%8F_%E5%8A%A8%E6%80%81%E9%93%BE%E6%8E%A5%E6%96%B9%E5%BC%8F.html

http://blog.csdn.net/zhuce0001/article/details/20651025

http://www.cnblogs.com/potential/archive/2012/11/05/2755899.html