踩坑记录:C++调用matlab生成的动态链接库

news2024/11/23 8:36:20

任务类别:

通常出现在项目中,使用 Matlab 设计算法,最后应用于 Qt 的应用程序中。


配置Vs2008环境:(PS:这里应该也同样能应用于其它版本)

一. 设置matlab库目录

在这里插入图片描述

  1. 选择“可执行文件”下拉框,添加:" ###\MATLAB\R2015b\bin\win32 "
    (PS:###表示你自己安装的matlab根目录)
  2. 选择“包含文件”下拉框,添加:###\MATLAB\R2015b\extern\include
  3. 选择“引用文件”下拉框,添加:###\MATLAB\R2015b\extern\lib
  4. 选择“库文件”下拉框,添加:###\MATLAB\R2015b\extern\lib\win32\microsoft
    上述环境只需要配置一次

二. 添加项目的附加依赖项(注意配置:Debug/Release)

在这里插入图片描述

libmex.lib
libmx.lib
libmat.lib
mclmcrrt.lib

使用matlab生成动态链接库

  1. 输入 deploytool 打开开发者工具,再点击 Library Compiler
    在这里插入图片描述
  2. 打开后如下图所示,选择自己需要转化的 .m文件(必需是函数),Package即可
    在这里插入图片描述
  3. 得到相应的文件
    在这里插入图片描述
    在这里插入图片描述

使用动态链接库

  1. 先将转化后的文件放入项目中,其中根目录文件夹下需要放置使用对象的 .dll文件
    在这里插入图片描述
  2. 设置项目中的附加包含目录
    在这里插入图片描述
  3. 在代码中使用,初始化
#include "mclmcrrt.h"
#include "*.h"
#pragma comment( lib, "*.lib" )

其中 * 表示你转换的动态链接库名称,比如我用上面生成的就应该是

#include "mclmcrrt.h"
#include "DJCalQ.h"
#pragma comment( lib, "DJCalQ.lib" )

初始化函数

 mclInitializeApplication(NULL,0);
 DJCalQInitialize();
 /*
 * 使用代码
 */
 DJCalQTerminate();
 mclTerminateApplication();

具体怎么使用有一篇博文比较详细:Qt与Matlab混合编程中mwArray数组使用详解

注意上述初始化需要成对出现且对称,否则会出现一些意料之外的惊喜(Bug)!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/91242.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Redis】Docker 安装 Redis

Docker 安装 Redis 1、安装镜像 docker pull redis docker images docker run -d -p 6379:6379 redis docker ps docker exec -it 容器ID bash 2、验证Redis容器安装结果 redis- clipingset k1 v1 get k1 3、使用Redis需修改配置文件redis.conf。可通过:方法一&…

【Redis】Redis 内存淘汰策略

文章目录概述数据淘汰策略不进行数据淘汰策略进行数据淘汰策略在设置了过期时间的数据中进行淘汰在所有数据范围内进行淘汰查看与配置数据淘汰机制查看 Redis 的数据淘汰机制修改 Redis 的数据淘汰机制方法一方法二浅谈 LRU 算法和 LFU 算法LRU 算法LFU 算法概述 当我们往 Red…

勒索病毒防御 运维安全管控 | 某烟草公司数据安全建设实践

对于烟草行业而言,加快数字化转型是建设现代化烟草经济体系、实现高质量发展的重要支撑。但新技术的普及与应用,在给烟草行业带来便利、创造价值的同时,也使行业面临的数据安全威胁与日俱增。 在数据安全监管合规持续升级的大背景下&#xff…

《自己动手写CPU》学习记录(9)——第7章/Part 2

目录 引言 致谢 流水线暂停 指令说明 madd、maddu、msub、msubu 设计 宏定义文件 程序计数器模块 译码模块 执行模块 访存模块 HI LO 寄存器模块 通用寄存器模块 流水线控制模块 程序ROM MIPS32顶层 MIPS32 SOPC 仿真 仿真程序 TESTBENCH 仿真结果 引言 …

从 0 到 1 搞一个 Compose Desktop 版本的玩天气之绘制

从 0 到 1 搞一个 Compose Desktop 版本的玩天气之绘制 上一篇文章 “从 0 到 1 搞一个 Compose Desktop 版本的玩天气之踩坑” 中大概说了下刚开始使用 Compose Desktop 会遇到的一些问题,帮大家踩了踩坑,那么这一篇则会带大家一起来看下项目中绘制的一…

网易开发三年,现跳槽蚂蚁花呗,4面顺利通过,拿下Java岗offer

面试准备 不论是校招还是社招都避免不了各种面试、笔试,如何去准备这些东西就显得格外重要。 运筹帷幄之后,决胜千里之外!不打毫无准备的仗,我觉得大家可以先从下面几个方面来准备面试: 1. 自我介绍。(介…

ubuntu22.04LTS 内核源码编译,安装,卸载

下载内核源码 到网站 https://www.kernel.org/ 下载你自己版本的内核源码。 使用如下命令查看自己的内核版本 uname -r编译前准备 安装工具 sudo apt-get install libncurses5-dev libssl-dev build-essential openssl zlibc minizip libidn11-dev libidn11 libelf-dev bc…

困扰程序员50年的问题终于解决了,但好像又没完全解决......

闰秒,这个唯一能够让Meta、谷歌、微软等巨头同暴躁的Linux之父Linus Torvalds达成一致的存在,这个让无数程序员为之头疼的存在,终于要取消了! 今年第27届国际计量大会上,与会代表通过了一项决议——从2035年起暂停在官…

【车辆计数】光流法行驶车辆检测计数【含Matlab源码 627期】

⛄一、光流场简介 1 案例背景 运动视觉研究的内容是如何从变化场景中的一系列不同时刻的图像中提取有关场景中物体的形状、位置和运动的信息。根据研究的方法,它可以分为两类:基于特征的方法和基于光流场的方法。基于特征的方法抽取特征点,是…

动态磨砂玻璃渐变背景

网页特效代码合集 动态磨砂玻璃渐变背景 妙用滤镜构建高级感拉满的磨砂玻璃渐变背景 一个磨砂(毛玻璃)质感效果的渐变背景图,看上去是比较高级的。 这个效果使用 CSS 其实也可以非常轻松制作出来。本文就讨论讨论: 使用 CSS …

WIN10环境下 MYSQL免安装版配置

之前用的旧版本Mysql,还安装Workbench,感觉很冗余,卸了重装一个免安装版, 1、 MYSQL下载解压 MySQL官网下载地址:https://downloads.mysql.com/archives/community/ 点击Download下载免安装版,并进行解压 2、配置环…

02.Ioc容器加载过程-Bean的生命周期源码深度剖析

Spring源码编译教程 Spring IoC容器的加载过程 1.实例化化容器:AnnotationConfigApplicationContext : // 加载spring上下文 AnnotationConfigApplicationContext context new AnnotationConfigApplicationContext(MainConfig.class);AnnotationConfi…

24岁程序媛实现了人生第一个小目标 | 2022年终总结

前言 大家好,我是伊人a。2022这一年我实现了人生中的第一个小目标-25岁前能够全款拿下宝马3系。耶比耶比🎉🎉🎉 2022年我是一个满眼星辰的的攀登者。 满眼星辰指的是我对未来充满希望且笃定不移, 攀登者指的是我在…

策略模式(State)

参考: 策略设计模式 (refactoringguru.cn) [5. 策略模式 — Graphic Design Patterns (design-patterns.readthedocs.io)](https://design-patterns.readthedocs.io/zh_CN/latest/behavioral_patterns/state.html) [design-patterns-cpp/Strategy.cpp at master …

[附源码]Node.js计算机毕业设计高校教务管理系统Express

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

从零开始搭建Vue3.0项目

从零开始搭建Vue3.0项目所使用的软件及工具,环境1.确保本机已安装nodejs和npm2.Vue-cli项目搭建所使用的软件及工具,环境 软件vscode: vscode地址下载, svn集中式管理: 是一个开源的代码版本控制系统,用于…

谷歌PR权重是什么意思?如何查询网站的谷歌PR权重

谷歌PR权重是什么意思? Google权重是SEO中的一个常见名词,谷歌权重最早的概念指的是GooglePageRank,简称谷歌的PR值,由网站的外链数据计算得出。 PR值的出现,导致很多人只注重做外链,忽略了网站自身…

认识文件、文件路径、File类

认识文件、文件路径、File类一、认识文件1.1 狭义与广义1.2 树型结构组织和目录1.3 其他相关知识二、文件路径 (Path)三、File类3.1 构造方法3.2 文件元信息操作方法3.3 代码示例一、认识文件 1.1 狭义与广义 狭义的文件: 存储在硬盘上的数据,以"…

DBSyncer

DBSyncer是一款开源的数据同步中间件,提供MySQL、Oracle、SqlServer、PostgreSQL、Elasticsearch(ES)、Kafka、File、SQL等同步场景。支持上传插件自定义同步转换业务,提供监控全量和增量数据统计图、应用性能预警等。 特点 组合驱动,自定义…

Git——Windows平台创建github私有仓库详解

目录 1. 注册github,登录 1.1 注册 1.2 登录 2. 创建仓库 3. GitBash使用 3.1 UI界面下载 3.2 配置本地 3.3 配置github 4. 托管 1. 注册github,登录 官网 GitHub 1.1 注册 1.2 登录 2. 创建仓库 根据需要选择: 3. GitBash使用 3…