VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 542|回复: 8

[已解决]没有源码和.h文件如果调用一个dll的函数

[复制链接]
17_avatar_middle
最佳答案
40 
在线会员 发表于 2021-3-6 17:25:37 | 显示全部楼层 |阅读模式
5驿站币
本帖最后由 yoobaby 于 2021-3-6 20:40 编辑

只有dll文件,用ViewApi之类的工具能查看导出的函数,但在没有.h文件和源文件的情况下,要怎么调用这个dll的导出函数。

像这种?号的,怎么能调用?

没有源码和.h文件如果调用一个dll的函数


DLL 文件: 没有源码和.h文件如果调用一个dll的函数 Common.rar (168.94 KB, 下载次数: 6)

最佳答案

查看完整内容

你直接写个文件名,DLL文件要跟EXE在同一目录才行,返回0说明LoadLibrary失败,确认是不是路径的问题,写绝对路径试一试度就知道。




上一篇:请问大佬,这是什么错误呀
下一篇:WriteProcessMemory 报错299
31_avatar_middle
最佳答案
62 
在线会员 发表于 2021-3-6 17:25:38 | 显示全部楼层    本楼为最佳答案   
bestAnswer
你直接写个文件名,DLL文件要跟EXE在同一目录才行,返回0说明LoadLibrary失败,确认是不是路径的问题,写绝对路径试一试度就知道。
58_avatar_middle
最佳答案
58 
online_vip 发表于 2021-3-6 20:08:40 | 显示全部楼层
函数指针试过吗?
17_avatar_middle
最佳答案
40 
ico_lz  楼主| 发表于 2021-3-6 20:34:46 | 显示全部楼层
thzzl 发表于 2021-3-6 20:08
函数指针试过吗?
  1.     HMODULE hCommon = LoadLibrary(TEXT("Common.dll"));
  2.     if (hCommon) {
  3.         cout << "获取模块句柄成功:" << hCommon << endl;
  4.         cout << "----------------------------------------" << endl;
  5.         typedef void (*P_ACTION)();
  6.         P_ACTION DllAction = (P_ACTION)GetProcAddress(hCommon, "dllCommand");
  7.         if (DllAction != NULL)
  8.         {
  9.             DllAction();
  10.         }
  11.         FreeLibrary(hCommon);
  12.     } else {
  13.         cout << "获取模块句柄失败:" << hCommon << endl;
  14.     }
复制代码


试过这样的,,一直获取句柄是0
58_avatar_middle
最佳答案
58 
online_vip 发表于 2021-3-6 22:18:27 | 显示全部楼层
yoobaby 发表于 2021-3-6 20:34
试过这样的,,一直获取句柄是0

dll和exe是不是在同一目录下呢。
17_avatar_middle
最佳答案
40 
ico_lz  楼主| 发表于 2021-3-6 23:44:16 | 显示全部楼层
thzzl 发表于 2021-3-6 22:18
dll和exe是不是在同一目录下呢。

不是这种问题,你有空的话可以试着一dll编写个看看。。
19_avatar_middle
最佳答案
12 
在线会员 发表于 2021-3-7 19:46:36 | 显示全部楼层
本帖最后由 236a 于 2021-3-7 19:52 编辑

................
17_avatar_middle
最佳答案
40 
ico_lz  楼主| 发表于 2021-3-7 21:50:23 | 显示全部楼层
cpp2019 发表于 2021-3-7 08:19
你直接写个文件名,DLL文件要跟EXE在同一目录才行,返回0说明LoadLibrary失败,确认是不是路径的问题,写绝 ...

谢谢!绝对路径也不行的。这dll是vs2005,的,是不是这原因不能调用。
70_avatar_middle
最佳答案
49 
在线会员 发表于 2021-3-8 10:22:13 | 显示全部楼层

导出的全是c++ 的类函数,没有.h 没有.lib 应该是用不了了
这有一个动态加载导出类的例子,不过需要dll也是自己写的,可以看一下,不多对于你这个问题应该没啥帮助,解决不了。
https://www.codeguru.com/cpp/w-p/dll/importexportissues/article.php/c123/Explicitly-Linking-to-Classes-in-DLLs.htm
Snipaste_2021-03-08_10-14-18.png

评分

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

查看全部评分

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

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

关闭

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

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

GMT+8, 2023-5-29 22:45

Powered by CcTry.CoM

© 2009-2021 cctry.com

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