dll格式的dll文件怎么打开编辑在MATLAB里面怎么调用

以前做过matlab7与c++的混合编程:将m函数編译成dll给C++调用从而加快开发的进度。但是今天在matlab2008b下面又做了一遍发现matlab又改了很多东西,诸如增加了面向对象的的扩展mwArray于是做笔记如丅。

matlab提供了丰富的程序接口除了matlab最初的版本是用fortran写的之外,后来的版本都是用C写的因此matlab很容易和C/C++联合起来使用。

matlab有着丰富的库函数將这些库函数直接编译成dll(windows下是dll,linux下是类似于dll的另外一个东西)给C调用,可以加快工程进度

1. 设置matlab的编译器,使用外部的VC或者gcc等编译器

3. 设置VC等的继承环境,设置C需要用到的静态库和动态库

下面以一个很简单的加法函数为例说明在VC6和matlab2008b下,怎么做混合编程

(二) 设置matlab编译器

2. 选择编译器这里选择2,即VC6

首先写出matlab函数,一个很简单的加法函数如下:

然后,进行编译命令如下:

其中,mcc是matlab提供的编译命令(鈳以理解为gcc)对于这一点,matlab的帮助说明如下:

其中-W是控制编译之后的封装格式cpplib,是指编译成C++的libcpplib冒号后面是指编译的库的名字,-T表示目标link:lib表示要连接到一个库dll文件怎么打开编辑的目标,目标的名字是后面的MyAdd即你写的m函数的名字。

运行完之后你的目录下面,将会出現以下一些dll文件怎么打开编辑:

具体每一个dll文件怎么打开编辑的意思请查帮助,这里只说其中很有用的几个:

libMyAdd.dll是编译好的动态库MyAdd这个函数封装在里面,libMyAdd.h是对应的头dll文件怎么打开编辑在C里面调用这个函数的时候,需要include这个头dll文件怎么打开编辑在这个头dll文件怎么打开编輯的最后,你可以看到下面的内容:

这就是MyAdd的C函数的声明

nargout表示输出变量的个数

a,bc就是对应了m函数的几个变量

注意,ab,c三个变量的类型是mwArray这是matlab提供的一个特殊的变量类型(在7.0的版本,编译之后变量类型是mxArray)。mwArray是一个类具体可以查帮助,当然后面也会讲到

有了上媔的准备,需要设置VC环境好让lib和dll能被成功的调用。

1. 首先建立一个控制台工程(这个我就不详细讲了太easy了)

首先是include头dll文件怎么打开编辑嘚位置,看最后一行(这个根据每一个人的安装目录可能不一样自己去找吧)

然后是lib的位置,不尽包括matlab的静态库的位置还包括刚刚编譯出来的lib的位置,见图的后面两个不用我解释吧

你可以打开这两个目录,看看里面到底有哪些头dll文件怎么打开编辑和lib首先来讲,我们這里要用到的头dll文件怎么打开编辑包括:

你可以到具体的路径下看一看有没有上面几个lib和头dll文件怎么打开编辑

路径设好了,需要制定具體用到的lib了在project Setting-link-Object/library modules里面加入上面提到的几个lib(具体几个lib到底做什么用的,这里不讲了看帮助,或者你试验删去几个lib能不能工作就大概可鉯猜得到他们是干什么的了)

3. 将编译好的dll复制到VC工程的Debug或者Release目录下,以使得dll可以被找到

所有任务完成之后,开始写Cpp试验调用编译之后的函数了

首先,包含应有的头dll文件怎么打开编辑:

然后写main函数:

// 为变量分配内存空间,可以查帮助mwArray

// set data不用我解释了吧,很简单的调用類里面的SetData函数给类赋值

// get data,不用我解释了吧很简单的,调用类里面的Get函数获取取函数返回值

// 后面是一些终止调用的程序

}

c/c++与matlab混编如果是这种情况的话,伱需要知道输入参数的个数与类型然后按照把m脚本和dll放在一个目录下,像调用函数一样调用就可以了

}

我要回帖

更多关于 dll文件怎么打开编辑 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信