Qt 调用Fortran dll

最近在做毕业设计,按照老师的思路,直接调用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中函数提供一个接口,是必须添加的,否则便会出现上面提到的问题。

后续关于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

时间: 2024-10-17 21:58:47

Qt 调用Fortran dll的相关文章

c++调用fortran程序中遇到的问题

一.C++动态调用Fortran DLL (1)创建FORTRAN DLL工程,生成forsubs.dll文件供调用. ! forsubs.f90 ! ! FUNCTIONS/SUBROUTINES exported from FORSUBS.dll: ! FORSUBS - subroutine ! INTEGER*4 FUNCTION Fact (n) !DEC$ ATTRIBUTES DLLEXPORT::Fact INTEGER*4 n [VALUE] INTEGER*4 i, amt

[转载:]C#与Fortran混合编程之本地调用Fortran动态链接库

前言 C#发展到现在,已是一门相当完善的语言,他基于C语言风格,演化于C++.并依靠强大的.NET底层框架.C#可以用来快速构建桌面及Web应用.然而在我们的实际工作中,尽管C#已经非常完善,但还是不能完成我们所有的工作.在很多工程计算中,C#语言的计算速度,精度,以及执行效率相对来说都达不到项目的要求.因此我们便考虑是否有一种方式将我们的工程计算部分和我们的项目分开,将计算部分用另一种执行更快,精度更高的语言来编写,然后在C#中调用,最后完成我们的工作.答案是肯定的. Fortran是一门古老

可以供MFC调用的,QT实现的DLL(qtwinmigrate实现)

MFC和QT的消息循环机制不同,所以,要让QT写的DLL可以供MFC调用,要做一点特殊的处理 [cpp] view plaincopyprint? #include <qmfcapp.h> #include <qwinwidget.h> #include <QtGui> #include <QtGui/QMessageBox> #include <windows.h> #include <QTextCodec> [cpp] view

Qt调用dll中的功能函数

DLL 优点 ------------------------------------- 1.扩展了应用程序的特性: 2.可以用许多种编程语言来编写: 3.简化了软件项目的管理: 4.有助于节省内存: 5.有助于资源共享: 6.有助于应用程序的本地化: 7.有助于解决平台差异: 8.可以用于一些特殊的目的.windows使得某些特性只能为DLL所用. 转载:http://www.cnblogs.com/hicjiajia/archive/2010/08/27/1810239.html Qt调用d

Qt调用DLL

声明: 事先我已经自己动手写了一个简单的dll文件(myDLL.dll),C版接口的.并且用我前两篇有关DLL文章里面的方法,从dll中导出了导入库(.lib)文件,dll中有两个函数,原型如下: void HelloWorld();     //函数内部调用Win32 API,功能是弹出一个helloworld提示框   int add(int a,int b);  //实现两个数相加,并返回结果 下面分别通过显示调用和隐式调用两种方法,来模拟Qt如何调用外部dll文件中的功能函数,follo

QT 调用 DLL 方法(三种方法)

Qt调用DLL方法一:使用Win32 API 在显式链接下,应用程序必须进行函数 调用以在运行时显式加载 DLL.为显式链接到 DLL,应用程序必须:? 调用 LoadLibrary(或相似的函 数)以加载 DLL 和获取模块句柄.? 调用 GetProcAddress,以获 取指向应用程序要调用的每个导出函数的函数指针.由于应用程序是通过指针调用 DLL 的函数,编译器不生成外部引 用,故无需与导入库链接.? 使用完 DLL 后调用 FreeLibrary.例如:typedef UINT (C

QT调用C#写的Dll

参见: https://blog.csdn.net/weixin_42420155/article/details/81060945 C#写的dll是没有dllMain入口函数的,是一种中间语言,需要.Net运行时进行做本地化工作,因此如果要调用C#写的dll,需要依赖.Net运行时,然而Qt中还无法直接调用.Net运行时,最好的方式是能够在Qt中直接调用C#dll的函数,但是Qt明显只能调用C++写的dll,所以就只能通过编写一个C++的dll导出接口供Qt调用,这个C++编写的dll对C#写

QT 调用VS2015编写的Dll

最近在用QT调用VC生成的库,QT使用的是MinGW调试器,出现与动态库不兼容的问题,最后发现QT只能识别VC生成的C格式下的动态库 也就是在导入导出设置时加入extern "C" .如extern "C" __declspec(dllexport),不能兼容类库.QT调用动态库时的步骤如图:1.将生成的这3个文件加入QT工程的目录下. 2.点击添加文件和添加外部库,如图   最后 include 头文件就可以使用了. 最后提醒大家:注意区分64 位和32位 以免不

C#调用Fortran生成的DLL的方法报内存不足

最近在研究一个程序,公司给的,程序是VB写的,程序里面还有一个计算的模型,用Fortran语言写的. 在调试到这个模型里面的方法时报错,说是内存不足,于是就在网上查找方法,看了两篇博客之后问题解决了. C#与Fortran混合编程之本地调用Fortran动态链接库 C#与Fortran混合编程:http://www.iepi.com.cn/BBS_CN/forum.php?mod=viewthread&tid=62&extra=page%3D1 原因是堆栈释放的问题,我用C#做的测试,和V