这里是我从Qt应用程序(Qt4 \ Qt5)调用Fortran(CVF \ IVF)中的Dll的问题。
QT4 + DLL(CVF)+ WinXp的
然后我的个人电脑死了,得到了新的,移植到Qt5与体外受精。 但仍然是这个问题:
Qt5 + Dll(IVF与complier_platform win32)+ Win8
那么,从各种个人电脑尝试他们之后:
Qt的调用代码是
if(stlDll.load()){ myfun fun1 = (myfun)stlDll.resolve("STLDLL"); if ( fun1 ){ fun1(fileName_For90); } } else QMessageBox::information(NULL, "File Missing",tr("dll not loaded, the Directory is ")+dllPath, QMessageBox::Ok);
错误总是“ 没有加载 ”,但是这是非常正确的dllPath,我可以findDLL的眼球,但Qt Applicaiton不能。
Fortran的dll编译代码是:
!DEC$ ATTRIBUTES DLLEXPORT,ALIAS::stlDLL
通常,使用英特尔Fortran编译的DLL动态链接到英特尔Fortran(和底层Microsoft C ++)运行时DLL。 Fortran DLL是以这种方式编译和链接的吗?
如果是这样,则需要在目标计算机上安装英特尔Fortran运行时DLL(以及基础Microsoft C ++运行时DLL)。
您可以从获得英特尔网站的英特尔Fortran运行时DLL的安装软件包获取下载编译器(或在此处查看 )的相同方式。 您可以通过搜索Microsoft网站(它们是Visual Studio版本和特定的Service Pack)来获取Microsoft C ++运行时库的安装包。 另外,作为英特尔Fortran和Visual Studio安装的一部分,合并模块和运行时安装exe可能已经安装在您的机器上。