c++ - 通过提供DLLName查找DLL路径

标签 c++ c winapi dll

如果我做

LoadLibrary("MyTest.dll")

Windows将从"C:\TestFolder\Test\MyTest.dll"找到并加载它,因为"C:\TestFolder\Test\"%PATH%文件夹中。

如何模拟相同的功能?我需要通过将C:\TestFolder\Test\MyTest.dll作为参数传递给函数来定位C:\TestFolder\Test\(%PATH%MyTest.dll中)。有没有这样的API?或功能?

附言我无法先执行LoadLibrary,然后再执行GetModuleHandle并找到Path,有时此DLL可能是恶意DLL,而我无法加载它。所以我需要找到PATH而不必加载它。

最佳答案

要加载DLL而不在其中运行任何恶意代码,请使用带有LoadLibraryExDONT_RESOLVE_DLL_REFERENCES标志的LOAD_LIBRARY_AS_DATAFILE

然后,您可以使用GetModuleFileName

您还应该阅读所有其他标志,这些标志使您可以执行Windows能够执行的所有各种搜索。

关于c++ - 通过提供DLLName查找DLL路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61541909/

相关文章:

c++ - 我可以将一个对象类转换为它在其中实现的接口(interface)指针吗?

c++ - 为什么我的程序输出中有空格?

c - 引用结构并将值添加到结构时出现段错误

c - 意外调用 printf

c - 如何单独安装较新版本的gcc

python - 如何通过python知道剪贴板中数据的类型?

c++ - 我的程序的 exe 文件所需的 DLL

c++ - C++ : Can multiple Clients listen to one server when endpoint is hard coded? 中的远程过程调用 (RPC)

c++ - C++ 如何处理多个源文件?

c++ - CreateProcess 不会使用参数启动进程