VS2012Matlab2016b dll文件混合编
2017-02-07 21:00
197 查看
Matlab作为矩阵实验室,在算法设计上具有显著的优越性,然而在Matlab平台上编写的算法不能直接应用在C语言中。混合编程提供了二者的接口,加速了程序开发速度。下面介绍Matlab 与 VS2012 混合编程方法。
1. 打开Matlab,设置编译器:
输入 "mex -setup" 在命令窗口输出中 选择合适的编译器,本文中选择VS2012.
2. 输入“deploytool”,在随后弹出的窗口中选择“library compiler”, matlab启动dll生成程序。在程序界面中选择“+”号,输入.m文件,点击‘package’,打包生成dll文件。
3. 为VS正常调用dll文件设置环境变量
在环境变量设置界面“path”中增加以下内容:
C:\Program Files\MATLAB\R2016b\runtime\win64;
C:\Program Files\MATLAB\R2016b\extern\lib\win64\microsoft;
C:\Program Files\MATLAB\R20156b\bin\win64
4. 将VS编译方式设置为Release X64模式并为VS 增加包含文件和库
在VC++ 目录中 包含文件添加“Matlab安装目录\extern\include;
库文件添加
Matlab安装目录\extern\include\lib\win64\microsoft;
链接器接入中 写入以下内容:
libmat.lib
libmex.lib
mclmcr.lib
mclmcrrt.lib
libemlrt.lib
libeng.lib
libfixedpoint.lib
libcovrt.lib
5. 新建VS工程,将2中生成的 .dll 文件,h 文件, .lib 文件复制到工程目录下.
6. 测试源码
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include "mclmcr.h"
#include "matrix.h"
#include "mclcppclass.h"
#include "ImageRead.h"
using namespace std;
#pragma comment(lib,"ImageRead.lib")
int _tmain(int argc,_TCHAR* argv[])
{
char filename[] = "G:\\VS\\2_6\\ConsoleApplication1\\ConsoleApplication1\\lena.jpg";
if(!ImageReadInitialize()) //初始化
{
printf("Could not initialize addfunction!");
exit(0);
}
printf("OK!");
mxArray *t=NULL;
t = mxCreateString(filename);
mlfImageRead(t);
Sleep(5000);
ImageReadTerminate();
return 0;
}
1. 打开Matlab,设置编译器:
输入 "mex -setup" 在命令窗口输出中 选择合适的编译器,本文中选择VS2012.
2. 输入“deploytool”,在随后弹出的窗口中选择“library compiler”, matlab启动dll生成程序。在程序界面中选择“+”号,输入.m文件,点击‘package’,打包生成dll文件。
3. 为VS正常调用dll文件设置环境变量
在环境变量设置界面“path”中增加以下内容:
C:\Program Files\MATLAB\R2016b\runtime\win64;
C:\Program Files\MATLAB\R2016b\extern\lib\win64\microsoft;
C:\Program Files\MATLAB\R20156b\bin\win64
4. 将VS编译方式设置为Release X64模式并为VS 增加包含文件和库
在VC++ 目录中 包含文件添加“Matlab安装目录\extern\include;
库文件添加
Matlab安装目录\extern\include\lib\win64\microsoft;
链接器接入中 写入以下内容:
libmat.lib
libmex.lib
mclmcr.lib
mclmcrrt.lib
libemlrt.lib
libeng.lib
libfixedpoint.lib
libcovrt.lib
5. 新建VS工程,将2中生成的 .dll 文件,h 文件, .lib 文件复制到工程目录下.
6. 测试源码
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include "mclmcr.h"
#include "matrix.h"
#include "mclcppclass.h"
#include "ImageRead.h"
using namespace std;
#pragma comment(lib,"ImageRead.lib")
int _tmain(int argc,_TCHAR* argv[])
{
char filename[] = "G:\\VS\\2_6\\ConsoleApplication1\\ConsoleApplication1\\lena.jpg";
if(!ImageReadInitialize()) //初始化
{
printf("Could not initialize addfunction!");
exit(0);
}
printf("OK!");
mxArray *t=NULL;
t = mxCreateString(filename);
mlfImageRead(t);
Sleep(5000);
ImageReadTerminate();
return 0;
}
相关文章推荐
- 在iPhone项目中放入汇编文件,并用C与汇编代码混合
- 用JAVA处理文本与二进制数据混合大文件
- Matlab 读混合数据类型文件 textscan
- thinkphp3.2Php代码和标签在模板文件中的混合使用
- 利用socket模拟http的混合表单上传(在一个请求中提交表单并上传多个文件)
- 使用XML布局文件和java代码混合控制UI界面
- c和c++文件混合编译
- Java基础之读文件——使用通道读取混合数据1(ReadPrimesMixedData)
- 创建嵌入式linux混合文件系统(ramdisk+jffs2)
- VMware下Windows系统和Linux系统混合环境文件共享
- 在VC中混合编译C++与汇编文件
- NASM GCC混合编译16位二进制文件。。。。
- 混合编程 -- 实现C自动编译以及thrift文件实现生成定义文件
- 【MATLAB与C的混合编程】之【C程序调用M文件编译后得到的DLL文件】
- 读取excel文件显示在gridview中数据.字符.数字混合时无法全部读取的问题!
- zz: 解决Visual C++ 编译器中混合 .c 文件时收到 C1853 预编译头错误的方法
- 解决Visual C++ 编译器中混合 .c 文件时收到 C1853 预编译头错误的方法
- 解决Visual C++ 编译器中混合 .c 文件时收到 C1853 预编译头错误的方法 from http://live.aulddays.com/tech/08/c1853precompile/
- ARC与非ARC文件的混合开发
- Exchange 混合部署—使用CSV 文件灵活迁移邮箱