vs2008调用matlab2010b版本m文件 生成dll调用
2011-06-21 18:05
363 查看
我在网上找了很多,版本都太老了,每一个用的了的,奇奇怪怪的错误,在同学的帮助调试下终于运行成功一个,贴出来,希望对大家有帮助,调用方法是把m文件生成dll调用的。
m文件如下:
function [output] = test_add(x,y)
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
f=imread('C:/distance.bmp');
imshow(f);
output=x+y;
end
vs2008中代码如下:
#include "stdafx.h"
#include "libtest_add.h"
#include <CString>
#include<iostream>
#include<matrix.h>
//#include"matlab.hpp"
using namespace std;
//#include"matlab.hpp"
#pragma comment(lib,"mclmcrrt.lib")
#pragma comment(lib,"libtest_add.lib")
int _tmain(int argc, _TCHAR* argv[])
{
//mxArray* pArrayIn;
//mxArray* pArrayOut;
// pArrayIn=mxCreateDoubleMatrix(1,1,mxREAL);//mxREAL实数数组没有虚部,创建一个一行两列的实数数组
// *(mxGetPr(pArrayIn))=10;
//*mxGetPr(pArrayIn)=
double a = 6;
double b = 8;
double c;
//double a[]={6};
//double b[]={8};
//CString str;`
mclmcrInitialize_proxy();
mwArray mwA(1, 1, mxDOUBLE_CLASS);//这句话有问题!
mwArray mwB(1, 1, mxDOUBLE_CLASS);
mwArray mwC(1, 1, mxDOUBLE_CLASS);
mwA.SetData(&a, 1);
mwB.SetData(&b, 1);
libtest_addInitialize();
test_add(1, mwC, mwA, mwB);
c = mwC.Get(1, 1);
//CString str;
//str.Format("%.0f",c);
cout<<c<<endl;
//MessageBox(str,"求和结果");
//test_add(1,&pArrayOut,pArrayIn,pArrayIn);
libtest_addTerminate();
return 0;
}
m文件如下:
function [output] = test_add(x,y)
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
f=imread('C:/distance.bmp');
imshow(f);
output=x+y;
end
vs2008中代码如下:
#include "stdafx.h"
#include "libtest_add.h"
#include <CString>
#include<iostream>
#include<matrix.h>
//#include"matlab.hpp"
using namespace std;
//#include"matlab.hpp"
#pragma comment(lib,"mclmcrrt.lib")
#pragma comment(lib,"libtest_add.lib")
int _tmain(int argc, _TCHAR* argv[])
{
//mxArray* pArrayIn;
//mxArray* pArrayOut;
// pArrayIn=mxCreateDoubleMatrix(1,1,mxREAL);//mxREAL实数数组没有虚部,创建一个一行两列的实数数组
// *(mxGetPr(pArrayIn))=10;
//*mxGetPr(pArrayIn)=
double a = 6;
double b = 8;
double c;
//double a[]={6};
//double b[]={8};
//CString str;`
mclmcrInitialize_proxy();
mwArray mwA(1, 1, mxDOUBLE_CLASS);//这句话有问题!
mwArray mwB(1, 1, mxDOUBLE_CLASS);
mwArray mwC(1, 1, mxDOUBLE_CLASS);
mwA.SetData(&a, 1);
mwB.SetData(&b, 1);
libtest_addInitialize();
test_add(1, mwC, mwA, mwB);
c = mwC.Get(1, 1);
//CString str;
//str.Format("%.0f",c);
cout<<c<<endl;
//MessageBox(str,"求和结果");
//test_add(1,&pArrayOut,pArrayIn,pArrayIn);
libtest_addTerminate();
return 0;
}
相关文章推荐
- 在vs中用C++编程的方式生成.dll文件和以动态、静态调用dll中函数
- 64位win7下vc2010如何调用matlab2012a中生成的dll文件
- matlab生成VS可调用的dll文件
- 用C#调用matlab中生成的dll文件
- VS2008 dll 项目不能生成*.lib文件
- C# 编译生成dll文件供程序调用的两种方法
- 使用vs2008制作dll文件,生成动态链接库
- VS2008 C++ 调用MATLAB 2009b 生成的DLL
- 用VS2008生成C++代码的dll及在C#中的调用及常见的类型转换
- C#调用matlab生成的dll文件问题
- C# 调用WebService的3种方式 :直接调用、根据wsdl生成webservice的.cs文件及生成dll调用、动态调用
- 用VS2008生成C++代码的dll及在C#中的调用及常见的类型转换
- vs2008中调用matlab生成的dll
- Qt Creator调用VS2008生成的DLL注意事项
- VS2008发布、生成网站时如何设置固定的dll文件名?
- VC++和Matlab混合编程(在VC中调用将.m文件生成的DLL)
- 使用vs2008制作dll文件,生成动态链接库
- VS2008发布、生成网站时如何像vs2003那样生成单个dll文件
- Delphi 使用之dll文件生成与调用
- [轉]VS2008发布、生成网站时如何设置固定的dll文件名?