VS2010调用MatlabR2010b的图形引擎
2017-02-28 11:41
309 查看
VS2010调用MatlabR2010b的图形引擎
一、介绍
用C++调用Matlab图形引擎,主要是利用COM组件服务。将Matlab作为COM Server,接受Client应用程序的请求。Matlab的m脚本是一种解释性语言,因此大多数调用都是直接通过传递命令字符串的eval方法实现的。
具体流程:
(1)通过C++ 程序,包含Matlab提供的头文件engine.h;
(安装目录文件下:D:\Program File\matlab2010\extern\include)
(2)利用Matlab提供的静态库文件libeng.lib,libmx.lib;
(位于D:\Program File\matlab2010\extern\lib\win32\microsoft)
(3)利用Matlab提供的动态链接库.dll文件.
(位于目录:D:\Program File\matlab2010\bin\win32)
二、实例演示
1、新建一个空项目,然后添加.cpp文件,其代码为:
2、配置开发环境
(1)我的Matlab版本是32位的。选择“生成----->配置管理器”,活动平台选择Win32(64位系统选择X64)。
(2)相关库文件和头文件的配置。
通过“项目----->属性----->VC++目录”,设置:
可执行程序目录为D:\Program File\matlab2010\bin\win32(.dll库文件所在目录);
包含目录:D:\Program File\matlab2010\extern\include(头文件所在目录);
库目录:D:\Program File\matlab2010\extern\lib\win32\microsoft(.lib库文件所在目录)。
(3)包含.lib库文件
通过“项目----->属性----->链接器--->输入---->附加依赖项”;
3、编译程序与运行
参考自:http://www.cnblogs.com/Vonng/p/4232586.html?utm_source=tuicool&utm_medium=referral
一、介绍
用C++调用Matlab图形引擎,主要是利用COM组件服务。将Matlab作为COM Server,接受Client应用程序的请求。Matlab的m脚本是一种解释性语言,因此大多数调用都是直接通过传递命令字符串的eval方法实现的。
具体流程:
(1)通过C++ 程序,包含Matlab提供的头文件engine.h;
(安装目录文件下:D:\Program File\matlab2010\extern\include)
(2)利用Matlab提供的静态库文件libeng.lib,libmx.lib;
(位于D:\Program File\matlab2010\extern\lib\win32\microsoft)
(3)利用Matlab提供的动态链接库.dll文件.
(位于目录:D:\Program File\matlab2010\bin\win32)
二、实例演示
1、新建一个空项目,然后添加.cpp文件,其代码为:
#include<cstdlib> #include <cstdio> #include<cstring> #include"engine.h" const int BUFFER_SIZE = 1024; char buffer[BUFFER_SIZE]; void test() { Engine* ep; mxArray *x1 = NULL; mxArray *y1 = NULL; if ((ep = engOpen("")) == NULL) { printf("Engine Fail"); } engOutputBuffer(ep, buffer, BUFFER_SIZE); printf("Init Success"); double x[5] = { 1.0, 2.5,3.7,4.4,5.1 }; double y[5] = { 3.3,4.7,9.6,15.6,21.3 }; x1 = mxCreateDoubleMatrix(1, 5, mxREAL); y1 = mxCreateDoubleMatrix(1, 5, mxREAL); memcpy((void *)mxGetPr(x1), (void *)x, sizeof(x)); memcpy((void *)mxGetPr(y1), (void *)y, sizeof(y)); engPutVariable(ep, "x", x1); engPutVariable(ep, "y", y1); engEvalString(ep, "plot(x,y)"); getchar(); engClose(ep); } int main() { test(); }
2、配置开发环境
(1)我的Matlab版本是32位的。选择“生成----->配置管理器”,活动平台选择Win32(64位系统选择X64)。
(2)相关库文件和头文件的配置。
通过“项目----->属性----->VC++目录”,设置:
可执行程序目录为D:\Program File\matlab2010\bin\win32(.dll库文件所在目录);
包含目录:D:\Program File\matlab2010\extern\include(头文件所在目录);
库目录:D:\Program File\matlab2010\extern\lib\win32\microsoft(.lib库文件所在目录)。
(3)包含.lib库文件
通过“项目----->属性----->链接器--->输入---->附加依赖项”;
3、编译程序与运行
相关文章推荐
- VS2010调用Matlab 2010 引擎的相关设置及问题( error LNK2019: unresolved external symbol _engOpen referenced in )
- 在VS2008,VS2010,VC6.0MFC中嵌入MATLAB的command window,调用MATLAB引擎
- Tesseract-OCR引擎和VS2010工程简单调用
- vs2010 matlab混合编程调用matlab引擎
- VS2010调用matlab2010b引擎
- vs2010 matlab混合编程调用matlab引擎
- vs2010 matlab混合编程调用matlab引擎
- 《基于VS2010调用matlab2010b引擎实现混合编程》
- VS2010编写动态链接库DLL及单元测试用例,调用DLL测试正确性
- Linux下Qt调用Matlab引擎
- ubuntu 图形界面注销(log_out)系统调用文件
- VS2010编译、调用Lua程序
- QT-EMBEDDED图形引擎体系结构源代码分析
- Windows下 使用Python 3 调用讯飞 TTS 引擎实现文本转语音
- 虚拟机字节码执行引擎-----方法调用
- VS2010 使用TeeChart画图控件 - 之二 - 绘制图形(折线图,柱状图)
- VS2010中调用matlab文件,没有找到mclmcr.dll,应用程序未能启动
- 如何使用VS2010调用visa进行程控
- vs2010 MVC调用msChart问题