vs2010+matlab R2013a+win7 32bit 混合编程
来源:互联网 发布:淘宝代运营哪家好 编辑:程序博客网 时间:2024/06/14 18:38
1 在matlab命令行中 mex -setup 选择vc++ 10.0 编译器(路径就是D:\program files\Microsoft Visual Studio 10.0)
mbuild -setup 选择vc++ 10.0 编译器(路径就是D:\program files\Microsoft Visual Studio 10.0)
2 配置环境变量 在系统变量中path中配置vc和matlab的位置D:\Program Files\matlab2013\runtime\win32;D:\Program Files\Microsoft Visual Studio 10.0;D:\Program Files\matlab2013\bin
3 在matlab中准备m文件如下
function [ c ] = MyAdd( a , b )
c = a + b;
end
c = a + b;
end
在命令行输入deploytool 选择c++ shared Library 然后将要编译的m文件add进去,之后build即可生成dll lib h文件
4之后按照http://blog.csdn.net/cjl19880906/article/details/12177641中的环境变量配置vs2010的环境
5 在vs中编写测试函数
#include "stdafx.h"
#include <iostream>
#include "engine.h"
#include "mclmcrrt.h" //加上这个库文件mclInitializeApplication函数才可以运行
#include "mclmcr.h"
#include "mclcppclass.h"
#include "MyAdd.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
if (!mclInitializeApplication(NULL,0)) //开始应用的函数否则不能初始化dll文件
{
cout<< "could not initialize the application properly"<< endl;
exit(1);
}
if(!MyAddInitialize())
{
//initilize failed!!!"<<std::endl;
std::cout<<"错误..."<<std::endl;
return -1;
}
cout<<"hello world"<<endl;
double a = 6;
double b = 9;
double c;
mwArray mwA(1, 1, mxDOUBLE_CLASS);
mwArray mwB(1, 1, mxDOUBLE_CLASS);
mwArray mwC(1, 1, mxDOUBLE_CLASS);
cout<<"111111111"<<endl;
mwA.SetData(&a, 1);
mwB.SetData(&b, 1);
cout<<"2222222222222"<<endl;
MyAdd(1, mwC, mwA, mwB);
cout<<"3333333333333"<<endl;
c = mwC.Get(1,1);
cout<<c<<endl;
#include <iostream>
#include "engine.h"
#include "mclmcrrt.h" //加上这个库文件mclInitializeApplication函数才可以运行
#include "mclmcr.h"
#include "mclcppclass.h"
#include "MyAdd.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
if (!mclInitializeApplication(NULL,0)) //开始应用的函数否则不能初始化dll文件
{
cout<< "could not initialize the application properly"<< endl;
exit(1);
}
if(!MyAddInitialize())
{
//initilize failed!!!"<<std::endl;
std::cout<<"错误..."<<std::endl;
return -1;
}
cout<<"hello world"<<endl;
double a = 6;
double b = 9;
double c;
mwArray mwA(1, 1, mxDOUBLE_CLASS);
mwArray mwB(1, 1, mxDOUBLE_CLASS);
mwArray mwC(1, 1, mxDOUBLE_CLASS);
cout<<"111111111"<<endl;
mwA.SetData(&a, 1);
mwB.SetData(&b, 1);
cout<<"2222222222222"<<endl;
MyAdd(1, mwC, mwA, mwB);
cout<<"3333333333333"<<endl;
c = mwC.Get(1,1);
cout<<c<<endl;
MyAddTerminate();
mclTerminateApplication();
mclTerminateApplication();
system("PAUSE");
return 0;
}
6 错误提示 无法找到程序入口 将相应的dll文件(bin)拷到工程目录下
7在编程实现时,传递图像,可能由于通道数的不同结果会出错,这时候可以传递图像所在的路径进行传递,在图像显示的时候如果都是一片黑,可能是double数字太小,不能显示出来,这时可以将double数据乘以255,转成uint型显示出来。
1 0
- vs2010+matlab R2013a+win7 32bit 混合编程
- Win7-64bit下matlab C混合编程环境搭建
- Win7-64bit下matlab C混合编程环境搭建
- matlab 2012 vs2010混合编程
- matlab 2012 vs2010混合编程
- vs2010 matlab混合编程调用matlab引擎
- win7 32bit+vs2010+CGAL
- Matlab R2013a: C++ MEX on Ubuntu 14.04 64-bit
- vs2010和Matlab R2012a 混合编程
- vs2010和Matlab R2012b 混合编程
- matlab 2012b与VS2010混合编程
- Matlab R2013a 在 32位Win7旗舰版安装之后提示两行warning
- 完成mingw-w64 与64 bit win7上的matlab 2010a 64 bit混合编译
- matlab与VS2010混合编程时,char16_t redefinition错误
- matlab与C混合编程调试-vs2010+matlab2012a
- MATLAB R2012a与vs2010混合编程 error LNK2019
- [转载]matlab与VS2010混合编程时,char16_t redefine
- c++与matlab混合编程,vs2010中调用.mat文件
- 字符串匹配之---BF算法(暴力破解法)
- JAVA DOM生成和解析XML实例
- python 学习日记(一)
- Linux磁盘设备名变了
- javascript DOM编程艺术学习笔记(5)通过DOM来设置样式案例
- vs2010+matlab R2013a+win7 32bit 混合编程
- java 多线程之join
- 程序员必读经典书籍
- 1011. A+B和C (15)
- 【Boost】boost::noncopyable介绍
- C语言中无符号扩展和带符号扩展知识讲解
- DELPHI分别连接MS SQLSERVER、Oracle和ACCESS数据库的连接字符串(备用)
- 070001 KANO模型
- 第二批要买的书