找到dll中的函数

简介: 找到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,右边是上下两幅,上面是自己导入的,下面是给别人用的

从网上找个图代替下:

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

至此问题解决

相关文章
|
Windows
找不到mfc110.dll,无法执行代码
找不到mfc110.dll,无法执行代码
202 0
找不到mfc110.dll,无法执行代码
|
C++ 索引
VC通过函数索引调用DLL范例
VC通过函数索引调用DLL范例
62 0
|
C#
解决办法:为什么我的DLL中加载后找不到指定的函数
解决办法:为什么我的DLL中加载后找不到指定的函数
162 0
|
C++
使用dumpbin查看dll有哪些函数
使用dumpbin查看dll有哪些函数
126 0
|
C#
[C#]使用Costura.Fody将源DLL合并到目标EXE
原文:[C#]使用Costura.Fody将源DLL合并到目标EXE   本文为原创文章,如转载,请在网页明显位置标明原文名称、作者及网址,谢谢! 一、本文主要是使用Costura.Fody工具将源DLL合并到目标EXE,因此,需要从以下任一链接下载: ①从Github地址下载: https://github.
3093 0