如何判断是否正在从VB6 exe调用DLL函数?

如何判断是否正在从VB6 exe调用DLL函数?,dll,vb6,dependencies,Dll,Vb6,Dependencies,我有一个旧的VB6应用程序,我不知道编译它使用了哪些代码。源代码的一个版本在kernel32.dll中调用Sleep 有没有办法确定exe是否调用DLL中特定的函数?我可以看到kernel32.dll是通过使用“Dependency Walker”工具链接的,但这似乎并没有告诉我从exe调用了特定的函数 您可以使用查看exe在运行时调用哪些DLL函数。如果您可以在调试器中运行该程序,则始终可以在Interest函数的地址设置断点。当然,您必须触发对导入函数的实际调用 您还可以尝试在反汇编程序中加

我有一个旧的VB6应用程序,我不知道编译它使用了哪些代码。源代码的一个版本在kernel32.dll中调用Sleep


有没有办法确定exe是否调用DLL中特定的函数?我可以看到kernel32.dll是通过使用“Dependency Walker”工具链接的,但这似乎并没有告诉我从exe调用了特定的函数

您可以使用查看exe在运行时调用哪些DLL函数。

如果您可以在调试器中运行该程序,则始终可以在Interest函数的地址设置断点。当然,您必须触发对导入函数的实际调用


您还可以尝试在反汇编程序中加载程序,查看是否有对它的引用,但这样就无法捕获任何动态加载的函数。有一个工具值得一看。但我不确定这是否适用于VB6程序,因为dll导入代码可能会动态加载函数(使用GetProcAddress等)。

在Dependency Walker中,您可以使用Profile命令。

这允许您跟踪并查看调用了哪些方法。

+1用于调试器。有人想发布使用WinDbg的分步说明吗?我非常确定VB6 DLL导入代码确实会动态加载函数-如果DLL中不存在指定的函数,则在调用函数时会出现运行时错误。应用程序加载时不会。