vs2010 matlab2012,VS2010和Matlab2012b混合编程 配置详解

本文介绍了如何在MATLAB中使用mex命令编译C/C++代码生成动态链接库,并配置系统环境变量和VS2010项目设置。详细步骤包括创建.mex文件、设置编译器路径和链接库,以及提供了一个完整的代码示例。
摘要由CSDN通过智能技术生成

一、MATLAB中的操作

1.编写MATLAB函数

function [c]=MyAdd(a,b);

c = a+b;2.在MATLAB中编译文件

在MATLAB中以此完成如下操作:

>>mex -setup  %选择VS2010然后一直选Y

>>mbuild -setup %选择VS2010,然后一直选择Y

>>mcc -W cpplib:MyAddLib -T link:lib MyAdd  (完成)

其中MyAddLib 就是我们要生成的库文件名,MyAdd是编写的.m文件名,这样就会编译成功,当前文件夹(MATLAB的当前路径应该是你的.m文件的路径)会出现很多新的文件,有用的是*.lib,*.h,*.dll文件,这些文件后面会用到。

0818b9ca8b590ca3270a3433284dd417.png

二、系统环境变量的配置

用户变量:

...\MATLAB\extern\lib\win32\microsoft;

...\MATLAB\bin\win32

系统变量:

...\MATLAB\runtime\win32;

...\MATLAB\bin;

...\MATLAB\extern\lib\win32\microsoft;

...\MATLAB\bin\win32

三、VS2010环境配置

1.新建一个工程->右击工程名->选择属性

具体配置如下:

2.

0818b9ca8b590ca3270a3433284dd417.png

3.

0818b9ca8b590ca3270a3433284dd417.png

4.

0818b9ca8b590ca3270a3433284dd417.png

5.

0818b9ca8b590ca3270a3433284dd417.png

四、代码示例

打开VS2010,新建一个空项目,把刚才生成的 *.h *.dll *.lib文件复制到刚刚新建的工程的文件夹下,并添加到工程当中。

#include

#include "MyAddLib.h"

using namespace std;

int main()

{

if(!MyAddLibInitialize())

{

return -1;

}

int a = 10;

int b = 20;

int c;

mwArray mwA(1,1,mxINT32_CLASS);

mwArray mwB(1,1,mxINT32_CLASS);

mwArray mwC(1,1,mxINT32_CLASS);

mwA.SetData(&a,1);

mwB.SetData(&b,1);

MyAdd(1,mwC,mwA,mwB);

c = mwC.Get(1,1);

cout<

MyAddLibTerminate();

getchar();

return 1;

}

在这个头文件的最后,你可以看到下面的内容:

extern LIB_MyAddLib_CPP_API void MW_CALL_CONV MyAdd(int nargout, mwArray& c, const mwArray& a, const mwArray& b);

这就是MyAdd的C函数的声明。nargout表示输出变量的个数,其他就是对应了m函数的几个变量。

注意,变量的类型是mwArray,这是Matlab提供的一个特殊的变量类型mwArray是一个类,具体可以查帮助。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值