获取DLL的目录

时间:2010-04-07 02:25:58

标签: windows dll path directory

我有一个关于在Windows系统上获取DLL目录的问题。

情况是这样的:

我有一个DLL和一个EXE文件。 exe文件必须加载DLL才能运行。 这两个模块位于不同的目录中。 而且,DLL的目录是可变的。 现在我必须在“运行时”中获取DLL的目录。

我怎么能这样做?

提前致谢。

2 个答案:

答案 0 :(得分:6)

您是否需要找到DLL的加载位置或找到加载它的路径?

MSDN上的DLL路径搜索算法为documented,您可以使用SearchPath函数搜索系统路径。

如果您需要找到加载DLL的路径,请在加载后使用GetModuleFileName函数。这将获取LoadLibrary,GetModuleHandle返回的模块句柄,或者作为hinstDLL传递给DllMain并返回DLL的完整路径。

答案 1 :(得分:2)

我猜你需要实现一些自定义搜索算法。只有你的exe知道需要哪个DLL以及它可以在哪里。因此,找到路径并将其与LoadLibrary()一起使用。

顺便说一句,如果可能的话,我会考虑使用COM。通过这种方式,您将使用某些CLSID的DLL内容,这完全独立于文件路径。