VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 507|回复: 6

[分享] DLL“动态调用”的两种“姿势”

[复制链接]
31_avatar_middle
最佳答案
25 
在线会员 发表于 2021-3-7 12:35:21 | 显示全部楼层 |阅读模式
本帖最后由 cpp2019 于 2021-3-7 12:37 编辑

今天来分享下DLL“动态调用”的两种“姿势”,注释不多写,假如看不懂就仔细看看方式一和方式二的区别,多上机试试。

调用姿势一代码

  1. // 调用方式一
  2. int Message(HWND hwnd)
  3. {
  4.         HINSTANCE hInst = LoadLibrary(_T("test.dll"));
  5.         if (!hInst)
  6.         {
  7.                 MessageBox(hwnd, _T("载入DLL出错!"), _T("错误"), MB_ICONERROR);
  8.                 return 1;
  9.         }

  10.         typedef void(*PROC)(LPCTSTR Text, LPCTSTR Caption);
  11.         PROC ShowMsg = (PROC)GetProcAddress(hInst, "Msg");
  12.         if (ShowMsg)
  13.         {
  14.                 ShowMsg(_T("中华人民共和国万岁"), _T("提示"));
  15.         }
  16.         FreeLibrary(hInst);
  17.         return 0;
  18. }
复制代码

调用方式一截图
DLL“动态调用”的两种“姿势”

调用姿势二代码

  1. // 调用方式二
  2. int Message()
  3. {
  4.         HINSTANCE hInst = LoadLibrary(_T("test.dll"));
  5.         if (!hInst)
  6.         {
  7.                 MessageBox(NULL, _T("载入DLL出错!"), _T("错误"), MB_ICONERROR);
  8.                 return 1;
  9.         }

  10.         typedef void(*PROC)(LPCTSTR Text, LPCTSTR Caption);
  11.         PROC ShowMsg = (PROC)GetProcAddress(hInst, (LPSTR)1);
  12.         if (ShowMsg)
  13.         {
  14.                 ShowMsg(_T("伟大领袖毛主席万岁"), _T("提示"));
  15.         }
  16.         FreeLibrary(hInst);
  17.         return 0;
  18. }
复制代码

调用方式二截图
DLL“动态调用”的两种“姿势”

Dll 部分代码

  1. extern "C" void _declspec(dllexport) Msg(TCHAR* lpText, TCHAR* lpCaption)
  2. {
  3.         MessageBox(NULL, lpText, lpCaption, MB_OK);
  4. }
复制代码


完整项目打包(8.04KB)
游客,如果您要查看本帖隐藏内容请回复


评分

参与人数 1驿站币 +2 热心值 +2 收起 理由
58_avatar_small thzzl + 2 + 2 很给力!

查看全部评分





上一篇:求windows下mozjs-45.0.2编译方法
下一篇:解析命令行参数
58_avatar_middle
最佳答案
52 
online_vip 发表于 2021-3-7 13:50:28 | 显示全部楼层
注释不多写,为了让我们自己去尝试,自己去体会两种方式区别,用心良苦!
91_avatar_middle
最佳答案
0 
在线会员 发表于 2021-3-7 15:33:36 | 显示全部楼层
记得学习一下,收藏了
17_avatar_middle
最佳答案
1 
在线会员 发表于 2021-3-7 22:07:03 | 显示全部楼层
不错。。。。。。
31_avatar_middle
最佳答案
25 
ico_lz  楼主| 发表于 2021-3-7 22:14:25 | 显示全部楼层
thzzl 发表于 2021-3-7 13:50
注释不多写,为了让我们自己去尝试,自己去体会两种方式区别,用心良苦!

多看多动手才能加深理解!

评分

参与人数 1驿站币 +2 热心值 +2 收起 理由
58_avatar_small thzzl + 2 + 2

查看全部评分

70_avatar_middle
最佳答案
47 
在线会员 发表于 2021-3-8 09:19:38 | 显示全部楼层
原来还可以用序号调,学习了DLL“动态调用”的两种“姿势”
22_avatar_middle
最佳答案
0 
在线会员 发表于 2021-5-30 23:51:13 | 显示全部楼层
DLL“动态调用”的两种“姿势”谢谢分享
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2021-8-4 21:39

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表