许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  matlab转C/CPP动态库dll步骤记录

matlab转C/CPP动态库dll步骤记录

阅读数 3
点赞 0
article_banner


环境: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) :销毁一个矩阵,并释放对应的内存空间


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空