Matlab R2016a+VS2010 混合编程 简单实现加法运算

14 篇文章 0 订阅

准备工作
1、配置MATLAB环境

控制面板->所有控制面板项->系统->高级系统设置->高级->环境变量

系统变量,新建,添加Matlab地址,变量名:maltab,变量值:C:\Program Files\MATLAB

Path一栏,后面追加:C:\ProgramFiles\MATLAB\R2016b\bin\win64      (32位为win32)

更改环境变量后,请重启电脑,否则VS将出现:LINK : fatal error LNK1104: 无法打开文件“libeng.lib”

2、配置MATLAB中的C++编译器

打开Matlab,命令行窗口输入 mex -setup

点击选择 mex -setup C++

配置完成后,进行第二步。

生成DLL文件

1,编写m文件

打开Matlab,新建函数

2,导航栏,应用程序,Application Compiler,新建Library Compiler Project,

TYPE选择C++ Shared Library,加号添加sum_prod.m文件,点击绿√Package。

 

3,Matlab编译后会在sum_prod.m所在文件夹下生成同名文件夹,打开分别是:

for_redistribution
for_redistribution_files_only
for_testing

打开for_redistribution_files_only,其中dll,lib,h是我们需要的文件,至此,Matlab方面就已经设置妥当了。

创建MFC项目文件

如果64位MATLAB生成的dll,那么VS编译目标平台也应该是x64,否则出错。

1,配置项目

将上述文件dll,lib,h文件拷贝到项目目录下。

添加include路径:C:\Program Files\MATLAB\R2016b\extern\include

添加lib路径:C:\Program Files\MATLAB\R2016b\extern\lib\win64\microsoft

                     C:\Program Files\MATLAB\R2016a\bin\win64

添加附加lib(附加依赖项):linker->input 追加

xxxx.lib; libeng.lib;libmx.lib; libmat.lib; mclmcr.lib;mclmcrrt.lib;

xxxx.lib是自己的M文件mcc生成的,使用#pragma comment(lib,"xxxx.lib")在主cpp文件中添加

以上根据自己的路径修改

库文件不能少,否则可以看到熟悉的编译报错:error LNK2019: 无法解析的外部符号


2、函数使用

其用于加载和卸载需要用到的dll,最后有一个判断,如

        if( !xxxInitialize() )
        {
            std::cerr << "Could not initialize the library properly"
                       << std::endl;
            return -1;
        }

程序调用dll中的函数前,必须先调用xxxInitialize()这个函数,xxx指的是函数名称。程序结束时,要调用xxxTerminate()。


关于mwArray类的使用

mwArray类作为函数体的输入输出变量,扮演很重要的角色,在使用函数之前,务必把mwArray查清楚

 

编译运行

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值