qt显式调用DLL

本文介绍了如何在C++中通过QLibrary加载并使用名为Mydll.dll的DLL文件,通过CUST_API宏和函数指针实现对Max函数的调用,以及如何正确卸载DLL。

准备DLL:我用的Mydll.dll
在这里插入图片描述

#include <QDebug>

#include <QLibrary>
#define  CUST_API	_stdcall

typedef int  (CUST_API *CalcOprt)(int ia,int ib);

int main(int argc, char *argv[])
{
    // 指定要加载的 DLL 文件,我用的绝对路径
    QLibrary myLib("D:/diao/Call/Mydll.dll");
        if (myLib.load()){ qDebug() << "DLL loaded successfully";}

    // 我们的函数指针去 获取DLL库中的 函数的地址(函数名)
    CalcOprt addFunc = (CalcOprt)myLib.resolve("Max");

    qDebug() << "Result of MaxValue:" << addFunc(3, 9);
    myLib.unload(); // 卸载 DLL

    return 0;
}

正常运行
在这里插入图片描述

解释一下:

#include <QLibrary>

 //window提供的标准接口宏
#define  CUST_API	_stdcall

//声明函数指针
typedef int  (CUST_API *CalcOprt)(int ia,int ib);

 // 指定要加载的 DLL 文件
 QLibrary myLib("D:/diao/Call/Mydll.dll");
 //加载成功了吗?
    if (myLib.load()){ qDebug() << "DLL loaded successfully";}
 // 我们的函数指针去 获取DLL库中的 函数的地址(函数名)
    CalcOprt addFunc = (CalcOprt)myLib.resolve("Max"); 
资源下载链接为: https://pan.quark.cn/s/abbae039bf2a 在开发过程中,将 C# 编写的 DLL 应用于 Qt 程序是一种常见需求,尤其当需要借助 C# DLL 实现特定功能时。本文将全面阐述在 Qt 程序中调用 C# 编写的 DLL 的方法,涵盖创建 C# DLL、在 Qt 程序中引入 DLL 以及导出接口函数等关键环节。 首先,创建 C# 编写的 DLL。在 Visual Studio 中,新建一个 C# Class Library 项目,选用 .Net Framework 4 作为项目框架。接着,在项目中添加对 System.Windows.Forms 的引用,以便使用 MessageBox 等控件。随后,创建一个公共类 CSharpClass,该类包含三个方法:add、substract 和 showBox。其中,add 方法用于执行加法运算,substract 方法用于执行减法运算,并通过 ref 参数返回结果;showBox 方法则用于展示用户输入的字符串。 在 Qt 程序中使用该 DLL 时,需先创建一个 C++ CLR 类型的 Class Library 项目,并在该项目中添加对 C# 编写的 DLL 的引用。具体操作是在项目属性中选择“Add New Reference…”,然后选择 CSharpDll.dll,从而使 Qt 程序能够顺利调用 C# 编写的 DLL。 在 CppDll 项目中,需借助 __declspec(dllexport) 导出三个接口函数 add、substract 和 showBox,以便 Qt 程序调用这些函数实现相应功能。需注意,在 showBox 函数中,参数类型应为 const char*,而非 CSharpDll 中的 String 类型。 在 Qt 程序中,通过调用这些 DLL 中的函数,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值