C++调用matlab生成的动态库

一、Matlab生成DLL

  1. 开发环境:vs2017+matlab2019b(x64)
  2. 安装与vs编译器版本对应的matlab(下载链接Matlab下载_Matlab破解版_Matlab安装包全版本合集
  3. 离线安装后不启动程序
  4. 破解:
    1. 将Crack文件夹下的license_server.lic,license_standalone.lic文件拷贝到安装目录的licenses文件夹下
    2. 将Crack/R2019b(对应版本的文件夹)文件夹下的文件拷贝至安装目录
  5. 生成DLL
    1. 方法一:
      1. 命令行执行mex -setup,选择C++编译环境
      2. 命令行执行mbuild -setup,选择C++编译环境
      3. mcc -W cpplib:动态库名称 -T link:lib 文件名称.m
      4. 该方法会将生成的C++库文件生成到.mat工程文件同级目录
    2. 方法二:
      1. 命令行执行mex -setup,选择C++编译环境
      2. 命令行执行mbuild -setup,选择C++编译环境
      3. 执行deploytool
      4. 选择Library Compiler
        b01d4b7dff7e48f6a778b499969407f2.pngad419a7dd2e4482eaee6a53e67d9946a.png
      5. 该方法会将生成的C++库文件生成到指定目录下
      6.  

二、C++ 调用DLL

  1. 将生成的TestDLL.h,TestDLL.dll,TestDLL.lib,TestDLL.ctf拷贝出来配置vs工程
  2. 配置
    1. C/C++-》常规-》附加库目录:添加头文件目录
    2. 配置链接器-》常规-》附加库目录:添加库目录
    3. 配置链接器-》输入-》附加依赖项:添加
    4. libeng.lib
    5. libmat.lib
    6. libmex.lib
    7. libmx.lib
    8. mclmcrrt.lib
    9. mclmcr.lib
    10. TestDLL.lib
  3. 系统环境变量path添加对应版本的matlab安装目录:C:\R2019b\bin\win64(重启)
  4. 将TestDLL.dll拷贝至exe同级目录
  5. 使用ea0f3724335748b0b561e8a0040d03e0.png
  6. 注意:
    1. 报内存错误:调试-》异常设置-》取消勾选Win32 Exceptions
    2. 注意配置管理器版本x86和x64,配置不生效时64位会依赖32位库,需要删除其他版本
    3. 错误:输入参数不足,请同时输入xx参数和xx参数
    4. 解决:命令行输入函数时包含多维数组,入参有多个变量而形参只有一个变量导致,参数对应时多维数组中的变量使用逗号分割,不对应时用分号分隔每个元素,,多个参数之间仍用逗号
    5.  

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值