获取DLL的目录

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

情况是这样的:

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

我怎么能这样做?

提前致谢。

你需要找到DLL加载它的位置或找到加载的路径吗?

DLL路径搜索算法记录在MSDN上,您可以使用SearchPath函数搜索系统路径。

如果您需要查找加载DLL的路径,请使用GetmoduleeFileName函数。 这需要由LoadLibrary,GetmoduleeHandle或者作为hinstDLL传递给DllMain的模块句柄,并将完整的路径返回给DLL。

我想你需要实现一些自定义的搜索算法。 只有你的exe知道哪一个DLL是需要的以及它可以在哪里。 所以找到路径并使用LoadLibrary()。

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