matlab 2012b与VS2010混合编程

本文介绍如何使用Matlab的编译器将Matlab函数编译为DLL,并在Visual Studio中调用这些函数。通过具体示例展示了从编译Matlab函数到在C++项目中使用的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Matlab中的MyAdd.m(你只需要替换成你的m文件即可)文件:

function [c] = MyAdd(a, b)

c = a + b;

1.mcc -W cpplib:libMyAdd -T link:lib MyAdd.m生成我们需要的

libMyAdd.dll
libMyAdd.h
libMyAdd.lib

将这三个文件拷贝到VS工程目录下

2.选择项目->项目属性。选择C/C++->常规->附加包含目录:F:\Program files\MATLAB\R2012b\extern\include

3.连接器->常规->附加库目录:F:\Program                    files\MATLAB\R2012b\extern\lib\win64\microsoft

4.连接器->输入->附加依赖项:libMyAdd.lib;mclmcrrt.lib

5.C++代码:

#include <iostream>

#include "libMyAdd.h"

using namespace std;

 

void main()

{

libMyAddInitialize();   //libMyAdd.dll初?始?化ˉ函ˉ数簓

mwArray a(1, 4, mxDOUBLE_CLASS);  //定¨义?一?个?1*4的?数簓组哩?,?你?的?需è求ó应畖该?是?一?个?1*n的?

a(1, 1)=2;   //给?数簓组哩?赋3值μ

a(1, 2)=2;

a(1, 3)=3;

a(1, 4)=4;

mwArray b(1, 4, mxDOUBLE_CLASS);  //再ù定¨义?一?个?1*4的?数簓组哩?,?你?的?应畖该?不?需è要癮

b(1, 1)=1;   //给?数簓组哩?赋3值μ

b(1, 2)=2;

b(1, 3)=3;

b(1, 4)=4;

mwArray y(1, 4, mxDOUBLE_CLASS);  //定¨义?一?个?1*4的?数簓组哩?获?取?返う?回?值μ

MyAdd(1, y, a, b);   //在ú这a个?函ˉ数簓中D,?第台?一?个?参?数簓表括?示?返う?回?值μ的?个?数簓,?第台?二t个?参?数簓数簓返う?回?的?数簓组哩?,?第台?三▂个?和í第台?四?个?是?输?入?参?数簓

cout<<y(1,1)<<"\t"<<y(1,2)<<"\t"<<y(1,3)<<"\t"<<y(1,4)<<"\n";

libMyAddTerminate();   //libMyAdd.dll的?关?闭?函ˉ数簓

while(1);

}

截图为:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值