一、Matlab生成DLL
- 开发环境:vs2017+matlab2019b(x64)
- 安装与vs编译器版本对应的matlab(下载链接Matlab下载_Matlab破解版_Matlab安装包全版本合集)
- 离线安装后不启动程序
- 破解:
- 将Crack文件夹下的license_server.lic,license_standalone.lic文件拷贝到安装目录的licenses文件夹下
- 将Crack/R2019b(对应版本的文件夹)文件夹下的文件拷贝至安装目录
- 生成DLL
- 方法一:
- 命令行执行mex -setup,选择C++编译环境
- 命令行执行mbuild -setup,选择C++编译环境
- mcc -W cpplib:动态库名称 -T link:lib 文件名称.m
- 该方法会将生成的C++库文件生成到.mat工程文件同级目录
- 方法二:
- 命令行执行mex -setup,选择C++编译环境
- 命令行执行mbuild -setup,选择C++编译环境
- 执行deploytool
- 选择Library Compiler
- 该方法会将生成的C++库文件生成到指定目录下
- 方法一:
二、C++ 调用DLL
- 将生成的TestDLL.h,TestDLL.dll,TestDLL.lib,TestDLL.ctf拷贝出来配置vs工程
- 配置
- C/C++-》常规-》附加库目录:添加头文件目录
- 配置链接器-》常规-》附加库目录:添加库目录
- 配置链接器-》输入-》附加依赖项:添加
- libeng.lib
- libmat.lib
- libmex.lib
- libmx.lib
- mclmcrrt.lib
- mclmcr.lib
- TestDLL.lib
- 系统环境变量path添加对应版本的matlab安装目录:C:\R2019b\bin\win64(重启)
- 将TestDLL.dll拷贝至exe同级目录
- 使用
- 注意:
- 报内存错误:调试-》异常设置-》取消勾选Win32 Exceptions
- 注意配置管理器版本x86和x64,配置不生效时64位会依赖32位库,需要删除其他版本
- 错误:输入参数不足,请同时输入xx参数和xx参数
- 解决:命令行输入函数时包含多维数组,入参有多个变量而形参只有一个变量导致,参数对应时多维数组中的变量使用逗号分割,不对应时用分号分隔每个元素,,多个参数之间仍用逗号