Matlab2012a与VS2010(C++)混合编程

合集下载

Visual-C#与Matlab混合编程示例(含代码)

Visual-C#与Matlab混合编程示例(含代码)

Visual C#与Matlab混合编程由于Visual C#与Matlab混合编程的资料并不多,本文通过一个实例来阐述Visual C#与Matlab混合编程的方法。

一、混合编程的4种方式1. 通过从Matlab的*.m文件中生成C语言版本的DLL1) 在Matlab中写好m文件;2) 使用Matlab的编译器,编译为C#能识别的DLL文件;3)建立C#工程,在工程中引用上一步生成的文件;2. C#调用Matlab工作区计算并返回结果主要使用engOpen, engClose, engPutVariable, engEvalString, engGetVariable函数进行操作。

大致过程如下:MatlabCSharp.engPutVariable(ep, "ml_a", mx_a);MatlabCSharp.engPutVariable(ep, "ml_b", mx_b);MatlabCSharp.engEvalString( ep, "ml_c = ml_a + ml_b ;" );mx_c = MatlabCSharp.engGetVariable(ep, "ml_c" );3. 使用Matlab DeployTool生成COM组件1) 单击菜单New Deployment Project -> MATLAB Builder NE -> Generic COM Component2) 添加相应的M文件3) 保存,编译4) 新建C#工程,引用生成的DLL文件。

4. 使用Matlab DeployTool生成.Net组件1) 单击菜单New Deployment Project -> MATLAB Builder NE -> .Net Component2) 添加相应的M文件3) 保存,编译4) 新建C#工程,引用生成的DLL文件。

C#和MatLab的混合编程(充分利用二者的优势)

C#和MatLab的混合编程(充分利用二者的优势)

C#和MatLab的混合编程(充分利⽤⼆者的优势)C#和MatLab的混合编程,充分利⽤了winform的直观显⽰和matlab的强⼤计算能⼒。

在此以⼀个⼩例⼦的形式给⼤家讲述⼀下⼆者混合编程的实现。

⼀、软件的配置说明C#版本:VS2010;MatLab版本:MatLab2011a⼆、制作matLab的C# dll⽂件2.1⾸先写⼀个M⽂件(实现你想要的函数执⾏形式)以⽹上down了⼀个M⽂件(实现基本的绘图功能),内容见下表,function test(h,D)for x=-10:0.1:10,if x>Dy=h;hold on;plot(x,y)elseif x<-Dy=-h;hold on;plot(x,y)elsey=h/(D*x);hold on;plot(x,y)endend2.2 创建制作的dll⽂件的⼯程在MatLab的命令窗⼝中,输⼊deploytool,或者利⽤菜单选项,file-new-deployment project打开创建dll⽂件的⼯程创建窗⼝,如下图所⽰。

在图中,主要分为以下三部分,Name:你想要命名的名字,prj是⼯程的后缀(⼀般不忽略);location:创建⼯程的储存位置;type:针对c#⽽⾔,我们需要选择.net assembly这⼀项;点击Ok选项,⼯程已经创建完毕。

下⼀步就是向⼯程中加⼊你想要的⽅法等元素。

2.3 向所建⼯程中添加对应的元素上述过程中,就相当于在C#中创建了Untitled2的命名空间,需要在此添加对应的类和⽅法。

基于上述的例⼦,下⼀步,我们在窗体菜单中Assembly-点击选择,见下图所⽰。

在上⾯Classes是你⾃⼰对应编写了⼀个类,然后向⾥⾯添加Add files,也就是你之前编写的M⽂件,经过编译之后,就在对应的⼯程⽂件中,形成你所需要的dll⽂件。

下⼀步我们如何在C#中利⽤对应的dll⽂件。

三、如何在C#中利⽤Matlab制作的dll⽂件3.1⾸先,将matlab中对应的刚编写好的untitled的dll⽂件,同时从C:R2011a\toolbox\dotnetbuilder\bin\win64\v2.0中拷贝出MWArrary.dll和Module三个⽂件拷贝到C#编写的⼯程⽂件中去,C#编程⽂件的debug⽂件中。

Matlab与Visual C++混合编程处理全站仪数据的方法

Matlab与Visual C++混合编程处理全站仪数据的方法

Matlab与Visual C++混合编程处理全站仪数据的方法胡加星;刘立龙;刘靖晔【期刊名称】《地理空间信息》【年(卷),期】2011(009)003【摘要】During the indoor work data checking, we often compared the point's field work coordinate with its indoor work coordinate. So we could find if there be some points were artificial, or some points had been moved. At the same time, the processed data could direct provide the three dimension coordinate, it was helpful for the next measure work. This article took the South total station instrument for example, based on matlab and Visual C++ mixing programming to generate the directly executable file, which could separate from the MTALAB en-vironment.then gave the code and the images of the result.%内业数据检核中经常要对点的外业实测坐标与内业成图后的坐标进行比较,以此来发现是否出现造点或是点位挪动的情况.同时经处理后的观测数据能直观地得到外业人员想要的三维坐标,可方便地进行下一步的测量工作.以南方全站仪为例,利用Matlab 与visual C++混合编程生成可脱离Matlab环境直接运行的可执行文件,并给出相关代码及成果图像.【总页数】3页(P175-177)【作者】胡加星;刘立龙;刘靖晔【作者单位】桂林理工大学土木与建筑工程学院,广西桂林541004;桂林理工大学土木与建筑工程学院,广西桂林541004;桂林理工大学土木与建筑工程学院,广西桂林541004【正文语种】中文【中图分类】P208【相关文献】1.Visual C++与Matlab混合编程方法的对比分析研究 [J], 罗朝明;胡顺超;邓日晓;陶扬威;吴祥营2.Visual C++与Matlab混合编程方法在图像处理中的应用 [J], 王忠3.Visual C++与Matlab混合编程方法研究 [J], 毛文;孙伟嵩4.基于MATCOM的Visual C++与Matlab混合编程方法 [J], 郦丹芸5.Visual C++与Matlab混合编程方法在图像处理中的应用 [J], 刘馨月; 吕英华; 周晓锋因版权原因,仅展示原文概要,查看原文内容请购买。

Matlab 与VS2010

Matlab 与VS2010

matlab与VS混合编程脱离MA TLAB运行环境2008-08-15 21:47matlab生成独立可执行的程序一、生成独立可执行的程序(exe文件)步骤1、安装编译器。

可有多种选择,本机安装的是microsoft visual c++ 6.0;2、设置编译器。

在matlab命令行输入mbuild -setup,选择安装的c编译器;3、调用编译器。

输入mcc -m filaname,filaname为要转成exe的m文件;在以前的版本中,用编译命令mcc -B sglcppfilaname;自2006的版本后,替换为mcc -m filaname;4、安装MATLAB7\toolbox\compiler\deploy\win32目录下的MCRInstaller。

二,VS2005与matlab混合编程VS运行环境的设置。

1,针对VS2005运行环境设置。

工具----选项----项目与解决方案----VC++目录:在“显示以下目录内容”的拉框中选择“包含文件”,添加目录:<MA TLAB>\extern\include\在“显示以下目录内容”的拉框中选择“库文件”,添加目录:<MA TLAB>\extern\lib\win32<MA TLAB>\extern\lib\win32\microsoft以上设置将对以后所有VC++工程适用2,对具体工程的一些设置。

项目--<项目名称>属性---,出现属性对话框。

在配置下拉框中选“所有配置”,配置属性----c/c++-------代码生成,在右边的“运行时库”中选取“多线程DLL(/MD)”配置属性----连接器-------输入,在右边的“附加依赖项”中添加相关的lib文件,如:mclmcrrt.lib,libmx.lib.等等。

三,、脱离matlab运行可执行程序MCR是由matlab的运行环境,占用不到400M的对于用不同matlab版本生成的exe文件,MCR版本也会有不同,因此,在程序打包时,最好将相应版本的MCR一起打包。

MATLAB与VisualStudio系列语言混合编程的方法[1]

MATLAB与VisualStudio系列语言混合编程的方法[1]

!’1 利 用 "#$%#& 引 擎 调 用 !"#$"% 引 擎 采 用 的 是 客 户 和 服 务 器 计 算 方 式 。 工
作原理为: !"#$"% 引 擎 作 为 服 务 端 , 16 的 程 序 作 为 前 台 客 户 机 向 !"#$"% 引 擎 传 递 命 令 和 数 据 信 息 , 并 从
@.A !&’3&B "- CBD=/’ 4=’ !&’3&BE6+=&’=CBD=/’FG!&’3&BH"II3./&’.*7GJ
+&Y 、 =7XV2’"++&Y 、 =7XL<&-’+.7X 、 =7XC2’V2’%200=+ 、 =7XU 63*-= 。这 几 个 函 数 在实 现 与 客 户 机 的 交 互 时 用 到 。
应用时, 在 编 译 16 程 序 前 , 要 将 : 个 动 态链接 库
3.B=7XH533 和 3.BAMH533 生 成 静 态 链 接 库 3.B=7XH3.B 和 3.BU AMH3.B 。 使 用 命 令 如 下 :
3.B Z 5=0 : =: [!&’3&B[=M’=+7[.7/325=[ ! H5=0 Z A&/(.7= : .M\] Z *2’ : ! H3.B 。
!
程 序 不 脱 离 "#$%#& 环 境 运 行
在 !"#$"% 中 编 制 的 !"#$"% 是 一 种 解 释 性 语 言 ,
程序源代码为 ! 文件。 在没有接口的情况下, 程 序 不 能脱 离 !"#$"% 环 境 运 行 。 此时, 在 1.-2&3 4’25.* 系 列 语 言 中 对 !"#$"% 实 现 调 用 有 : 种 方 法 : 创 建 "/’.<=> 对 象 和 利 用 !"#$"% 引 擎 。

MATLAB2012b与vs2010相互调用时的编译环境设置

MATLAB2012b与vs2010相互调用时的编译环境设置

MATLAB2012b与vs2010(vc++9.0)交叉调用时的编译环境设置不会游泳的鱼 于2013年11月在科研和学习中,经常遇到MATLAB运行比较慢,而VC++又需要所有工作都由自己从头做起的情况。

那么,在VC++和MATLAB中进行交叉调用就成为一种能够博采众长的好方法。

但是,如果要实现MATALB 和VC++之间的相互调用,必须要对两者的编译环境进行一些必要的设置。

目前网络上公开的相关资料都是针对旧版本的MATLAB和VC++编译器进行设置,本文依据笔者亲自实验的结果介绍对MATLAB2012b和VS2010进行设置的说明。

考虑到WIN7, 8系统(64位)使用的增加,本文在VS2010中特别标注了x64系统(64位)与x86系统(32位)在设置上的区别。

第一部分:MATLAB 2012b的编译环境设置首先,确保本机已经正确安装MATLAB2012b 和Visual Studio 2010 (旗舰版) 且包含VC++组件(默认版本9.0),并且获得全部使用授权。

其次, 在MATLAB 2012b中安装mbuild组件。

(1)在MATLAB 2012b的命令窗口中键入:mbuild –setup‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ Welcome to mbuild ‐setup. This utility will help you set upa default compiler. For a list of supported compilers, see/support/compilers/R2012b/win32.htmlPlease choose your compiler for building shared libraries or COM components:Would you like mbuild to locate installed compilers [y]/n?‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ (2) 键入y并回车,MATLAB会显示当前系统已经安装的C和C++编译器。

Matlab R2011a与vs 2010 c 混编-上传

Matlab R2011a与vs 2010 c  混编-上传

Matlab 与c++混合编程环境:Matlab R2011a,vs 2010 c++,win7, 32位操作系统Matlab R2011a与vs 2010 c++混合编程通信成功,在vs2010 c++中能够调用matlab的m函数,进行计算,得到正确结果,调用matlab中m函数转化成的dll文件(本文采用此种方法)步骤:一、matlab编译环境的设置为了在开发时实现对MA TLAB的具体功能的调用,应首先在操作系统中安装MATLAB工具软件,之后并运行此工具软件,依次执行:(注意:matlab和vs2010都是安装在系统默认目录下的,安装路径均没有修改过,实践证明:这样才能让matlab找到vs2010 c++的编译器,不然找不到)>> mex -setupPlease choose your compiler for building external interface (MEX) files:Would you like mex to locate installed compilers [y]/n? ySelect a compiler:[1] Lcc-win32 C 2.4.1 in D:\PROGRA~1\MA TLAB\R2009a\sys\lcc[2] Microsoft Visual C++ 6.0 in D:\Program Files\Microsoft Visual Studio[0] NoneCompiler: 2Please verify your choices:Compiler: Microsoft Visual C++ 6.0Location: D:\Program Files\Microsoft Visual StudioAre these correct [y]/n?Trying to update options file:C:\Users\Robin\AppData\Roaming\MathWorks\MATLAB\R2009a\mexopts.batFrom template: D:\PROGRA~1\MA TLAB\R2009a\bin\win32\mexopts\msvc60opts.bat Done . . .************************************************************************** Warning: The MA TLAB C and Fortran API has changed to support MATLABvariables with more than 2^32-1 elements. In the near futureyou will be required to update your code to utilize the newAPI. You can find more information about this at:/support/solutions/data/1-5C27B9.html?solution=1-5C27B9Building with the -largeArrayDims option enables the new API.**************************************************************************>>以上是运行mex –setup的情况。

Matlab2012a和VS2010混合编程的实现

Matlab2012a和VS2010混合编程的实现

MATLAB2012a和VS2010混合编程的实现(Win7+32bit)lihui-mn@ 1.在MATLAB中编写m文件如下:function y = myfunc(a)y = a.*a;2.MATLAB环境设置操作过程如下:3.创建动态链接库mcc: 将M文件编译成C文件的MATLAB命令;csharedlib: 创建一个C可共享的动态链接库;myfunclib: 要创建的dll文件的名字;myfunc: M文件的名字.如果要加入动态链接库的是多个函数, 那么写成myfunc1 myfunc2 …结果生成文件:4. VS2010环境设置a.创建一个console application, 并新建一个cpp文件(否则之后Property Pages中没有C/C++目录 )b. 设置目录①Property Pages -> VC++ Directories -> Include Directories, 添加(安装目录下)E:\tools\MATLAB\extern\include\②Property Pages -> VC++ Directories -> Library Directories, 添加E:\tools\MATLAB\extern\lib\win32\microsoft③Property Pages -> C/C++ -> General -> Additional Include Directories, 添加E:\tools\MATLAB\extern\include\④Property Pages -> Linker -> General -> Additional Library Directories, 添加E:\tools\MATLAB\extern\lib\win32\microsoft⑤Property Pages -> Linker -> Input -> Additional Dependencies, 添加5. Windows环境设置Computer - > Properties -> Advanced system settings -> Environment Variables -> User Variables -> path, 添加E:\tools\MATLAB\extern\lib\win32\microsoft;E:\tools\MATLAB\bin\win32Computer - > Properties -> Advanced system settings -> Environment Variables -> System Variables -> path, 添加E:\tools\MATLAB\runtime\win32;E:\tools\MATLAB\bin;E:\tools\MATLAB\extern\lib\win32\microsoft;E:\tools\MATLAB\bin\win326. 将MATLAB生成的文件以及MATLAB安装目录bin下的两个文件copy到VS工程目录下7. 在VS窗口下编写程序#include"myfunclib.h"usingnamespace std;void main(){myfunclibInitialize();//初始化DLL动态链接文件double _x[5] = {1, 2, 3, 4, 5};//定义输入数组double _y[5];//定义输出数组mxArray* x = mxCreateDoubleMatrix(1, 5, mxREAL);//创建1*5矩阵memcpy(mxGetPr(x), (void*)_x, sizeof(_x));//copy输入数据mxArray* input[1] = {x};//将矩阵x的指针作为输入参数传递进去mxArray* output[1];//定义输出参数指针mlxMyfunc(1, output, 1, input);//调用M函数mxArray* y;//定义输出结果指针y = output[0];//将输出参数传递给输出结果memcpy(_y, mxGetPr(y), sizeof(_y));//copy输出数据myfunclibTerminate();//结束DLL库for(int i = 0; i< 5; i++){printf("%f\n", _y[i]);}}参考资料:1. /s/blog_59955afc0100qqgt.html2. /f?kz=2023504793. http://www.mathworks.fr/support/solutions/en/data/1-FWTSV5/index.html?product=ML&solution=1-FWTSV54. /s/blog_6ac4211e0100xm7k.html。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Matlab2012a与VS2010(C++)混合编程经历了各种报错和崩溃,用了近1个月的时间终于把C++的程序调通了。

在编程过程中,我在网上找了各种Matlab和C++混编的资料,感觉混编的资料太少,故将自己编程的过程和心得分享给大家,希望能帮到和我一样挣扎在混编领域中的同学。

环境:windows8.1,Matlab2012a,VS2010需要编的C++程序要实现与Matlab一样的功能,从键盘输入数据,获得计算结果和图像。

如下图:大概的过程:Matlab的m文件→dll→C++调用dll和Matlab中的engine(与图像有关,后面会详细说明)→输出计算结果和图像1.Matlab编译器设置(电脑安装有VS2010)(1)mex命令设置(a) 运行 Matlab ,在 Matlab 的命令窗口 (Command Window) 键入“ mex -setup ”命令后,按回车键,安装 Matlab 编译器;(b) 命令窗口出现如下提示:Please choose your compiler for building external interface (MEX) files:Would you like mex to locate installed compilers [y]/n?此时键入“y” ,按回车;(c) 命令窗口出现如下提示:Please choose your compiler for building external interface (MEX) files:Would you like mex to locate installed compilers [y]/n? ySelect a compiler:[1]Microsoft Visual Studio 2010 in G:\ Visual Studio 2010[0] None此时键入” 1” ,按回车;选择 Microsoft Visual Studio 2010 的编译器(d) 命令窗口出现如下提示:Please verify your choices:Compiler: Microsoft Visual Studio 2010Location: G:\ Visual Studio 2010Are these correct?([y]/n):此时键入”y” ,按回车;确认选择 Microsoft Visual Studio 2010 的编译器(2) mbuild 命令设置(a) 运行 Matlab ,在 Matlab 的命令窗口 (Command Window) 键入“ mbuild -setup ”命令后,按回车键,安装 Matlab 编译器;(b) 命令窗口出现如下提示:Please choose your compiler for building standalone MATLAB applications:Would you like mbuild to locate installed compilers [y]/n?此时键入”y” ,按回车;(c) 命令窗口出现如下提示:[1] Microsoft Visual Studio 2010 in G:\ Visual Studio 2010[0] None此时键入“1” ,按回车;选择 Microsoft Visual Studio 2010 的编译器(d) 命令窗口出现如下提示:Please verify your choices:Compiler: Microsoft Visual Studio 2010Location: G:\ Visual Studio 2010Are these correct?([y]/n):此时键入”y” ,按回车,确认选择 Microsoft Visual Studio 2010 的编译器,编译器设置完成。

2.将Matlab 函数转成DLL 函数(tips:能封装成dll文件的m文件其内容必须是自定义函数形式)函数文件RE_1.m ,内容如下:function [f0,f1,f2]=RE_1(S0,S1,S2)x = 0:0.01:2*pi;r =cos(3*x)/5 - (3*cos(6*x))/5 + (7*cos(20*x))/10 + sin(2*x)/10 + (3*sin(13*x))/10 + 10;r_max = max(r);r_min = min(r);r1=r_max;r2=r_min;f0=r1-r2;N=128;p1=19;p2=64;c0=1;c1=-sin(2*pi*p2/N)/sin(2*pi*(p2-p1)/N);c2=sin(2*pi*p1/N)/sin(2*pi*(p2-p1)/N);Sn=c0*S0+c1*S1+c2*S2;c=[1,c1,c2];m=[0,p1,p2];D=zeros(N);for i=1:Nfor j=1:3if i+m(j)<=ND(i,i+m(j))=c(j);elseD(i,mod(i+m(j),N))=c(j);endendendD;z=pinv(D);r=z*Sn;r_max=max(r);r_min=min(r);f1=r_max-r_min;g1=S0-r;r1=[r(p1+1:end);r(1:p1)];g2=((S1-r1)-(S0-r)*cos(2*pi*p1/N))/sin(2*pi*p1/N); a_sum=0;b_sum=0;for i=1:Na(i)=(g1(i)*sin(2*pi*(i-1)/N)-g2(i)*cos(2*pi*(i-1)/N))*sin(4*pi*(i-1)/N);b(i)=(g1(i)*sin(2*pi*(i-1)/N)-g2(i)*cos(2*pi*(i-1)/N))*cos(4*pi*(i-1)/N);a_sum=a_sum+a(i);b_sum=b_sum+b(i);endA1=2*a_sum/N;B1=-2*b_sum/N;s0_re=A1*cos(2*pi*0/N)+B1*sin(2*pi*0/N)+r(1);for i=1:N-1s(i)=A1*cos(2*pi*i/N)+B1*sin(2*pi*i/N)+r(i+1);h_re(i)=s(i);endl=[s0_re;h_re'];r_re=double(l);r_re_max=max(r_re);r_re_min=min(r_re);f2=r_re_max-r_re_min;end函数文件RE_2.m ,内容如下:function [R,R_re]=RE_2(S0,S1,S2)N=128;p1=19;p2=64;c0=1;c1=-sin(2*pi*p2/N)/sin(2*pi*(p2-p1)/N);c2=sin(2*pi*p1/N)/sin(2*pi*(p2-p1)/N);Sn=c0*S0+c1*S1+c2*S2;c=[1,c1,c2];m=[0,p1,p2];D=zeros(N);for i=1:Nfor j=1:3if i+m(j)<=ND(i,i+m(j))=c(j);elseD(i,mod(i+m(j),N))=c(j);endendendD;z=pinv(D);r=z*Sn;g1=S0-r;r1=[r(p1+1:end);r(1:p1)];g2=((S1-r1)-(S0-r)*cos(2*pi*p1/N))/sin(2*pi*p1/N);a_sum=0;b_sum=0;for i=1:Na(i)=(g1(i)*sin(2*pi*(i-1)/N)-g2(i)*cos(2*pi*(i-1)/N))*sin(4*pi*(i-1) /N);b(i)=(g1(i)*sin(2*pi*(i-1)/N)-g2(i)*cos(2*pi*(i-1)/N))*cos(4*pi*(i-1) /N);a_sum=a_sum+a(i);b_sum=b_sum+b(i);endA1=2*a_sum/N;B1=-2*b_sum/N;s0_re=A1*cos(2*pi*0/N)+B1*sin(2*pi*0/N)+r(1);for i=1:N-1s(i)=A1*cos(2*pi*i/N)+B1*sin(2*pi*i/N)+r(i+1);h_re(i)=s(i);endl=[s0_re;h_re'];r_re=double(l);i=[0:2*pi/127:2*pi];I=0:pi/256:2*pi;R=spline(i,r',I);R_re=spline(i,r_re',I);end这2个matlab程序很像,只是输出值有所不同。

我将RE_1.m封装成接口为mwArray的dll文件;将RE_2.m封装成接口为mxArray的dll文件。

具体操作如下:在 Matlab的 Command Window 下输入命令 :命令 1 : mcc -W cpplib:RE_2-T link:lib RE_2.m或命令 2 : mcc -W lib:RE_2-T link:lib RE_2.m(命令 1 生成的 DLL 函数接口的数据类型是 mwArray ,命令 2 生成的 DLL 函数接口的数据类型是 mxArray 。

)生成动态链接库DLL,编译完成后,Matlab会在当前文件夹生成一些文件:其中RE_2.dll,RE_2.h和RE_2.lib 是所需要的3.VS2010编译环境设置和工程创建(1).环境变量及VS2010编译环境设置(以下地址是我的电脑中文件夹的地址)①环境变量:我的电脑→属性→高级系统设置→高级→环境变量→系统变量→Path→编辑添加:(以下是我的电脑中文件夹的地址)G:\Matlab2012a\bin\win64G:\Matlab2012a\runtime\win64G:\Visual Studio 2010\VC\bin(地址之间用;隔开,且;是英文下输入的)②VS2010编译环境项目→属性1)配置管理器→活动解决方案平台→新建→X642)VC++目录包含目录添加:G:\Matlab2012a\extern\include库目录添加;G:\Matlab2012a\extern\lib\win64\microsoft③链接器→输入→附加依赖项mclmcrrt.libRE_1.libRE_2.liblibeng.liblibmx.liblibmat.lib(每一项之间用回车隔开)P.S:mclmcrrt.lib,RE_1.lib,RE_2.lib是与调用matlab生成的dll有关的;libeng.lib,libmx.lib,libmat.lib是调用matlab的engine,生成函数图像有关的。

相关文档
最新文档