有关qt和matlab的问题

yingui4004 2010-07-28 10:32:39
有人说,想在qt里调用matlab,得将matlab程序做成dll,再用QLibrary调用。

对于这句话我不是太理解,想请教诸位,怎么把matlab程序做成dll,怎么用QLibrary调用?
...全文
241 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
maxray88 2010-10-17
  • 打赏
  • 举报
回复
非常感谢,我也有类似的问题。
scutzhou 2010-08-17
  • 打赏
  • 举报
回复
同问 我要在linux调用matlab来计算 现在还不知道怎么弄
yingui4004 2010-08-12
  • 打赏
  • 举报
回复
非常感谢二楼的精心回复,非常感谢!!!
不过我还有一个小小的问题:qt里到底应该怎样调用matlab生成的dll文件或者怎么调用由matcom生成的.h和.cpp文件呢?
在这先谢谢各位了
ayw215 2010-07-28
  • 打赏
  • 举报
回复
(一)准备

什么是MATLAB Compiler?MATLAB Compiler能够将你的matlab程序转换为自包含(self-contained)的应用程序和组件,这样你就可以将程序发放给你的终端用户,而且终端用户无需安装matlab就可以运行这些程序。MATLAB Compiler能够生成的应用或者组件包括下面这几类:
1、独立的应用程序
2、C和C++共享库(动态链接库,在Windows平台上是DLL,在Linux平台下是.so文件)
3、Excel插件
4、COM和.NET对象

本文中我们只看matlab是如何生成独立的应用程序的。其他组件生成方式可以参考matlab的帮助文档。注意:在你使用MATLAB Compiler和阅读相关说明文档之前,要求你一定要已经安装了MATLAB Compiler,也就是安装的时候必须要选中MATLAB Compiler复选框。在我使用的matlab 2005a上,安装的是MATLAB Compiler version 4。

假定你已经安装好了MATLAB Compiler。下面我们看一下与MATLAB Compiler相关的两个重要概念MCR和CTF。

MCR的全称是MATLAB Component Runtime,它是一组独立的共享库,通过它能够执行在MATLAB中编写的M文件。MCR支持MATLAB语言的所有功能。

CTF的全称是Component Technology File,这是一种归档技术,通过它,MATLAB将可部署文件包装起来。需要注意的是,位于CTF归档文件中的所有M文件都采用了AES(Advanced Encryption Standard)进行加密,AES的对成密钥则通过1024位的RSA密钥保护。除此之外,CTF还对归档文件进行了压缩。显然,通过这种方式,可以只将可知行的应用程序或者组件发布给终端用户,而保证源代码不被泄漏。

MATLAB Compiler的构建过程分为下面五步:
1、分析依赖关系
2、代码生成
3、创建归档文件(archive)

4、编译
5、链接

既然MATLAB Compiler是将M文件中的代码编译成C/C++接口,那么应该使用什么样的C/C++编译器呢?MATLAB Compiler支持的ANSI C和C++编译器有这样一些:
1、Lcc C version 2.4.1,这个是MATLAB Compiler自带的编译器,也是默认的编译器,但是它只能支持C代码;
2、Borland C++ version 5.5,5.6,以及5.5免费版
3、Microsoft Visual C/C++(MSVC)version 6.0和7.1
4、对于UNIX系统,支持的编译器是gcc和g++

如果要生成独立的应用程序,那么只需要在MATLAB的command窗口或者DOS命令窗口输入:

>> mcc -m write_dicom

即可。如果要生成动态链接库,那么只需要将选项改为:

>> mcc -l write_dicom

即可。

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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