找到dll中的函数

举报
无敌清风蓝 发表于 2023/06/14 17:07:42 2023/06/14
【摘要】 解决找不到dll函数的问题

1.引言

自己在工作中,发现在一个项目是生成dll的,其中包含很多个头文件和cpp,但是其中一个头文件Test.h里面有一行代码是

bool DLL_EXPORT MyFunction(int a);

但是却没有Test.cpp来实现这个函数的定义
那就奇怪了,有了函数声明,但没有定义

2.我的思路

我的第一个思路是既然头文件是Test.h,那按照自己之前生成dll的方式,它生成的dll文件也一定叫Test.dll,用everything也没有搜到有这个文件

既然这样行不通,那我去看下是不是它又依赖其他的dll呢,打开依赖库文件,发现也没有一个叫做Test.dll或者MyFunction.dll,我这样想的原因是总觉得既然在这里生成,那应该名字也一样,现在看来,之前查的头蒙了,怎么能自己包含自己生成的dll呢,笑掉大牙

那我想有没有一个文件可以查我这个项目Test生成的Test.dll里面包含的函数呢,因为既然我的MyFunction是这个dll功能的一部分,那必然它在Test.dll里

于是发现了一款工具Dependencies,它可以查exe或者库所依赖的其他dll,之前第一次工作时,我的leader航哥就对我说过这个软件,但当时觉得这个名字好长,所以只有个印象,但没有记住

3.Dependencies

把Test.dll加载进去,点击左侧Test.dll,右边是上下两幅,上面是自己导入的,下面是给别人用的

从网上找个图代替下:image.png

我在上面按Ctrl+F,搜MyFunction果然搜到了,并且发现它在bbb.dll中,这时我再去Test项目中看附加库依赖文件,发现确实有bbb.dll

至此问题解决

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。