Qt动态库调用

2023-10-30

在开发过程中调用第三方的动态库应该是不可避免的,调用DLL的方式也不算少,可以通过Win32 API、直接调用、Qt的API等诸多方式进行调用。

这里着重介绍一下Qt自带的API调用DLL的方法。
以调用DLLTest.dll中返回值为bool类型的Init()为例:

.h

#include <QLibrary>

class DLLTest
{
public:
    DLLTest();
    ~DLLTest();

    bool DLLTestInit();
    bool DLLTestLoadLibrary();

private:
    QLibrary m_Library;
};

.cpp

#include <.h>

//定义Init函数指针
typedef bool (__stdcall *Init)();
Init FunctionInit;

DLLTest::DLLTest()
{
}

DLLTest::~DLLTest()
{
}

bool PosAceKGType_WM::DLLTestInit()
{
    //加载动态库
    if(!DLLTestLoadLibrary())
    {
        return false;
    }
    //调用初始化函数
    bool bRes = FunctionInit();
}

bool PosAceKGType_WM::DLLTestLoadLibrary()
{
    if(!m_Library.isLoaded())
    {
        m_Library.setFileName("DLLTest.dll");
        if(!m_Library.load())
        {
           	qDebug() << "DLLTest.dll加载失败,"+m_Library.errorString();
            return false;
        }
        FunctionInit = (Init)m_Library.resolve("Init");
        if(!FunctionInit)
        {
            qDebug() << "Init()函数加载失败";
            m_Library.unload();
            return false;
        }
    }
    return true;
}

有问题请留言,不忙的时候会看。

若对你有帮助,点赞收藏,经常更新

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt动态库调用 的相关文章

  • 我如何才能等待多个事情

    我正在使用 C 11 和 stl 线程编写一个线程安全队列 WaitAndPop 方法当前如下所示 我希望能够将一些内容传递给 WaitAndPop 来指示调用线程是否已被要求停止 如果 WaitAndPop 等待并返回队列的元素 则应返回
  • 以文化中立的方式将字符串拆分为单词

    我提出了下面的方法 旨在将可变长度的文本拆分为单词数组 以进行进一步的全文索引处理 删除停止词 然后进行词干分析 结果似乎不错 但我想听听关于这种实现对于不同语言的文本的可靠性的意见 您会建议使用正则表达式来代替吗 请注意 我选择不使用 S
  • 为什么 C# Array.BinarySearch 这么快?

    我已经实施了一个很简单用于在整数数组中查找整数的 C 中的 binarySearch 实现 二分查找 static int binarySearch int arr int i int low 0 high arr Length 1 mid
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • 重载<<的返回值

    include
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

    我创建的应用程序中 除了启用登录的操作之外的每个操作都应该超出未登录用户的限制 我应该添加 Authorize 每个班级标题前的注释 像这儿 namespace WebApplication2 Controllers Authorize p
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • 测试用例执行完成后,无论是否通过,如何将测试用例结果保存在变量中?

    我正在使用 NUNIT 在 Visual Studio 中使用 Selenium WebDriver 测试用例的代码是 我想在执行测试用例后立即在变量中记录测试用例通过或失败的情况 我怎样才能实现这一点 NUnit 假设您使用 NUnit
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

  • Ubuntu 20系统WIFI断连问题

    最近工作需要购置了一台GPU机器 然后搭建了深度学习的运行环境 在工作中将这台机器当做深度学习的服务器来使用 前期已经配置好多用户以及基础环境 但最近通过xshell连接总是不间断的出现断连现象 下面记录下 为此主要进行的操作 1 IP地址
  • Dubbo的几种序列化协议

    dubbo 支持哪些通信协议 支持哪些序列化协议 说一下 Hessian 的数据结构 PB 知道吗 为什么 PB 的效率是最高面试官心理分析 面试官心理分析 上一个问题 说说 dubbo 的基本工作原理 那是你必须知道的 至少要知道 dub
  • 802.11 - 定向多播服务(Directed multicast service)

    定向多播服务 前言 802 11v指定了定向多播服务 directed multicast service DMS 使客户端设备能够请求AP直接向其发送组播和广播帧 提高了网络效率 DMS的传输速率比定期组播每秒快数百Mb 与非DMS基础设
  • Basic Level 1035 插入与归并 (25分)

    题目 根据维基百科的定义 插入排序是迭代算法 逐一获得输入数据 逐步产生有序的输出序列 每步迭代中 算法从输入序列中取出一元素 将之插入有序序列中正确的位置 如此迭代直到全部元素有序 归并排序进行如下迭代操作 首先将原始序列看成 N 个只包
  • Java的流程控制结构以及程序跳转关键字详解

    本文详细介绍了Java中的流程控制结构 以及跳转关键字break continue return的使用 文章目录 1 流程控制结构分类 2 顺序结构 3 选择结构 3 1 if语句 3 1 1 if 3 1 2 if else 3 1 3
  • 匿名科创无人机学习心得

    1 飞控stm32串口5连接imu 串口五发送的指令会发送到imu中 如果是自定义的用户格式帧 比如 AA FF F1 03 01 01 01 A0 67 会先到imu imu的串口1接stm飞控 串口2接数传 从串口1接收到的数据会通过串
  • element-ui表单仅对el-form表单的部分字段/某个字段进行验证

    根据elementui文档 查询到validateField方法 可以给表单的某个字段添加校验 对表单单个字段进行校验 data rules email required true message 请输入邮箱 trigger change
  • 2023年最新版IDEA安装(超详细)

    个人主页 平行线也会相交 欢迎 点赞 收藏 留言 加关注 本文由 平行线也会相交 原创 收录于专栏 JavaSE primary 写在前面 IDEA的安装是建立在JDK安装好了的前提下 否则IDEA是无法使用的 具体JDK如何安装可以参照此
  • C ++ Primer(第五版)第十三章练习答案

    C Primer 第五版 第十三章练习答案 13 1 1 节练习 练习 13 1 练习 13 2 练习 13 3 练习 13 4 练习 13 5 13 1 2 节练习 练习 13 6 练习 13 7 练习 13 8 13 1 3 节练习 练
  • Dubbo与SpringCloud框架详解

    一 互联网架构演进 1 互联网项目架构 1 互联网项目与传统项目 互联网项目架构的特点 用户多 流量大 并发高 海量数据 易受攻击 功能繁琐 变更快 传统项目和互联网项目的不同 用户体验 美观 功能 速度 稳定性 大型互联网项目架构的目标
  • Qt/C++实现函数指针的使用

    1 背景 对于if else语句或者switch case语句非常累赘 且每个分支结构基本一致情况下 可以使用列表方式代替if else或者switch case 对于C语言这方面很容易实现 但是对于C 的类成员来说需要特殊的要求 2 代码
  • AVX Intrinsics各函数介绍

    SIMD相关头文件包括 include
  • 《Linux运维实战:Centos7.6一键离线部署mysql5.7.29集群》

    文章目录 一 部署背景 三 部署工具 三 部署演示 总结 整理不易 如果对你有帮助 可否点赞关注一下 一 部署背景 由于业务系统的特殊性 我们需要面向不通的客户安装我们的业务系统 而作为基础组件中的mysql针对不同的客户环境需要多次部署
  • Android 多选按钮Button

    一 先上效果图 二 准备阶段 资源文件 可根据项目需要调整样式 大小和颜色等 在res文件夹下创建以下资源文件 根据根标签选择Root Element 1 bg btn no select xml
  • 【数据对比】Parasoft Jtest如何提高Java测试ROI,加速软件交付!

    Parasoft Jtest通过提供一套工具来加速Java软件开发 以保证您的软件可靠 安全和可维护 从而最大限度地提高质量并最大限度地降低业务风险 经广泛证明 Parasoft Jtest是一个可以提高开发团队生产力和软件质量方法的集成解
  • 使用jvisualvm的jstatd方式远程监控Java程序

    使用Java自带的jvisualvm调试Java程序 可以查看CPU 内存 类及线程等信息 还可以进行Dump 无疑是一个利器 由于客户端是Windows 服务端是Linux 并且是最小安装的Linux 没有图形界面 因此需要进行远程调试
  • vue循环如何动态加载本地图片

    显示效果 代码 html
  • Excel中利用OFFSET函数解决很多个分块的一次性转置问题(非纯手动)

    今天遇到一个问题 需要将Excel中的一门课的平时成绩根据每个同学的作业次数进行转置排列 原始EXCEL表中内容如下 上表每个同学对应一个学号 该学号同学的作业和分数相应已知 现在为了统计方便 我要得到如下表的效果 因为学生人数众多 所有不
  • 【100%通过率 】【华为OD机试c++/java

    华为OD机试 题目列表 2023Q1 点这里 2023华为OD机试 刷题指南 点这里 题目描述 祖国西北部有一片大片荒地 其中零星的分布着一些湖泊 保护区 矿区 整体上常年光照良好 但是也有一些地区光照不太好 某电力公司希望在这里建设多个光
  • Qt动态库调用

    在开发过程中调用第三方的动态库应该是不可避免的 调用DLL的方式也不算少 可以通过Win32 API 直接调用 Qt的API等诸多方式进行调用 这里着重介绍一下Qt自带的API调用DLL的方法 以调用DLLTest dll中返回值为bool