环境:win10+matlab2023b+VS2019社区版
第1步在matlab中APP里面点击"Library Compiler"或者在命令行中输入deploytool

第2步 将需要转换的代码封装成函数,然后按照如下步骤将函数添加并打包:

如果该函数中调用了其他的函数,会自动识别并显示出来,如下图所示:

第3步matlab打包完成后,生成如下几个文件夹

选择for_testing文件夹打开,将框出的几个文件复制到VS项目文件夹中,如下图所示


第4步 打开VS2019,将框中的值改成x64,否则会报错

右键点击"project",选择"属性",如下图所示:

配置项目属性:
在 “VC++目录“的”包含目录“添加…\MATLAB\R2023b\extern\include : 如下图所示




”库目录“添加”D:\matlab\R2023b\extern\lib\win64\microsoft“,如下图所示:


第5步 添加matlab提供库以及上述自己生成的库

在“附加依赖项”区添加如下的库:


第5步 按ctrl+alt+e,打开”异常设置“,将”Win32 Exceptions“关闭,不然执行时会有如下错误


以上是matlab库的生成以及使用matlab库的环境配置,接下来是生成库的使用
包含上述生成的头文件”seprate_entry.h“
打开头文件”seprate_entry.h“,里面包含如下几个函数

其中 下面两个函数是必须的,而终止函数”void MW_CALL_CONV seprate_entryTerminate(void);“可能能用上。


数据转换,上述函数中所使用的变量类型是,matlab库中定义的,在使用过程中需要进行类型转换,以下是常用函数
mwSize : 宽整型size_t的别名
marry* ptr = mxCreateDoubleMatrix(mwSize m,mwSize n,mxREAL):创建一个m*n的实数矩阵
double* ptr2 = mxGetPr(marry* ptr) : 将矩阵中第一个元素的指针提取出来
mwSize dims = mxGetNumberOfDimensions(marry* ptr ) :获取矩阵的维度
const mwSize* elemNum = mxGetDimensions(marry* ptr ):获取每个维度元素的数量
mwSize mx_numElement = mxGetNumberOfElements(marry* ptr):获取一个矩阵的元素数量
void mxDestroyArray(marry* ptr) :销毁一个矩阵,并释放对应的内存空间
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删