当前位置: 首页 > news >正文

还用VS2019制作 动态加载DLL

        首先要提一下这个项目的背景,是我们自己的引擎SailFish需要做一个C++的插件,动态调用DLL。因为有段时间没做DLL了,就按照新建库的方法做了一个,动态调用总是193错误。感觉是做法上有些问题,网上查了半天也没有一个正确的案例。后来终于想起来了,为了怕再忘掉,在这里做个笔记,也许可以帮助到跟我类似境遇的人。

一、创建DLL

        DLL分为动态加载和静态加载,其实两个做法不太一样,静态加载教程较多我就不写了,这里写动态加载的DLL的写法:

        1. 创建新项目,选这个按照向导生成不要选动态链接库

2.进入后,给DLL起个名字,点创建

3.这时候会弹出向导,按如下图选择,这样就可以了,选空项目可以更多自由:

4. 手动添加如下文件 MessageDLL.h,MessageDLL.cpp:

       我为了做测试,就做了一个简单的回音函数:

MessageDLL.h

#ifndef MESSAGEDLL_H
#define MESSAGEDLL_H// 导出函数声明
extern "C" __declspec(dllexport) void PrintMessage(const char* message);#endif // MESSAGEDLL_H

MessageDLL.cpp

#include "MessageDLL.h"
#include <iostream>// 实现导出函数,功能是输出输入的内容
extern "C" __declspec(dllexport) void PrintMessage(const char* message) {if (message) {std::cout << "收到消息: " << message << std::endl;}else {std::cout << "收到空消息" << std::endl;}
}

5. 然后Ctrl+B编译 DLL:

二、调用DLL程序

1.这个比较简单,生成一个控制台程序:

2. 写入代码如下:

#include <windows.h>
#include <iostream>// 定义函数指针类型,与DLL中的函数匹配
typedef void (*PrintMessageFunc)(const char*);int main() {// 动态加载DLLHINSTANCE hDLL = LoadLibraryA("MyNewDll.dll");if (!hDLL) {std::cerr << "无法加载DLL: " << GetLastError() << std::endl;return 1;}// 获取DLL中的函数地址PrintMessageFunc printMessage = (PrintMessageFunc)GetProcAddress(hDLL, "PrintMessage");if (!printMessage) {std::cerr << "无法找到函数: " << GetLastError() << std::endl;FreeLibrary(hDLL);return 1;}// 调用DLL中的函数printMessage("Hello, 这是一个动态调用DLL的示例!");printMessage("测试第二个消息");// 释放DLLFreeLibrary(hDLL);return 0;
}

运行应该可以看到:

这样,一个动态调用DLL的小测试就完成了~

http://www.dtcms.com/a/429368.html

相关文章:

  • 免费网站建设网站大坪网站公司
  • 会展网站建设成功的原因图片 移动网站开发
  • 开封专业做网站公司长沙市宁乡县建设局网站
  • 在centos上做网站传奇类网页游戏排行榜
  • 移动互联网的终点和归宿是什么搜索网站排名优化策略
  • 郑州网站建设公司哪家专业有网站怎么做企业邮箱
  • 天门建站山亭 网站建设
  • 如何创建个人的网站备案中网站名称
  • 网站建设类企业网站建设建设
  • 网站关键词选取的步骤和方法微信公众号的制作方法和步骤
  • 姜堰网网站北京昨天出啥大事了
  • 创建一个网站多少钱西安官网优化技术
  • 站长之家查询工具六六seo基础运营第三讲
  • 广州专业网站建设哪家好wordpress模板 古典
  • 网站建设中 模版餐饮网站建设
  • 威海临港区建设局网站广州清洁公司
  • 果洛电子商务网站建设哪家好马拉松网站建设
  • 肇庆市住房和城乡房屋建设局网站用h5开发的网站模板
  • 有网站前台一个专门做标题的网站
  • 克旗网站制作5229998福州市交通建设集团有限公司网站
  • wordpress 站中站优化关键词排名外包
  • MPC-BE视频播放器(强大视频播放器) 中文绿色版
  • 兰州工程建设信息网站wordpress菜单栏不显示不出来
  • 宁波网站推广营销asp网站 证书
  • 网站做支付接口wordpress 重复插件
  • 网站建设塞西甘肃做高端网站的公司
  • 哈尔滨住房城乡建设局网站wordpress字体插件下载
  • 皖icp备 网站建设asp 网站开发实例教程
  • 安阳建设网站哪家好深圳发布广告的平台有哪些
  • 自适应文章网站模板做网站的的需求文档