Windows10 64位 matlab&VC混合编程

看了好多文章,在网上找了好多资料,终于在自己电脑上实现了用VS2013调用Matlab编译的动态库;

我的机器环境是(64位) Windows10  Matlab2015a Visual Studio 2013;由于没有找到破解版的Matlab来支持VS2015的编译器和打包工具,就用的VS2013。

需要注意的问题是64位的机器需要配置64位的工程配置,Matlab配置的mex编译器和mbuild打包工具需要选择一致,我选择的是VS2013,用师姐给的Matlab2014a的库调用就缺少某些.dll文件,这个应该是版本问题


总共分为以下几步:

1.设置系统环境变量

C:\R2015a\bin\win64;

C:\R2015a\bin;

C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin;(VS安装路径)

2.VC++目录下的包含目录添加

C:\R2015a\extern\include

C:\R2015a\extern\include\win64 

D:\Documents\VS2013\test\test

估计是BUG,在VS中添加目录如果路径中某个文件夹名字包含空格可能会导致VS无法识别路径,所以我把我的Matlab包和工程文件夹都拷贝到没有空格的文件夹里面了。。。也以防万一

3.VC++目录下的库目录添加

C:\R2015a\bin\win64

C:\R2015a\extern\lib

D:\Documents\VS2013\test\test

C:\R2015a\extern\lib\win64\microsoft

C:\R2015a\extern\lib\win32\microsoft

4.C/C++中的常规里面的附加包含目录添加

C:\R2015a\extern\include

5.连接器下面的常规中的附加库目录添加

C:\R2015a\extern\lib\win64\microsoft

6.连接器下面的输入中的附加依赖项添加

libeng.lib
libmat.lib
libmex.lib
libmx.lib
mclmcrrt.lib
mclmcr.lib

libMyAdd.lib

7.在将Matlab编译好的.dll .lib .h文件拷贝到工程目录里面和主函数所在文件夹放在一起,并添加至工程

8.在配置管理器中将工程配置为x64(这一步容易被忽略)


下面来看看主函数怎么调用加法函数,源代码样例:

// test.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "engine.h"
#include "mclmcr.h"
#include "mclcppclass.h"
#include "libMyAdd.h"
#include <iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	if (!libSumInitialize())
	{
		//initilize failed!!!"<<std::endl;
		std::cout << "错误..." << std::endl;
		return -1;
	}
	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);
	mwA.SetData(&a, 1);
	mwB.SetData(&b, 1);
	MyAdd(1, mwC, mwA, mwB);
	c = mwC.Get(1, 1);
	cout << c << endl;
	system("PAUSE");
	return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值