gpt4 book ai didi

windows - 如何在 Windows 进程 (XP/Windows 7) 中找到已加载 DLL 的实际路径

转载 作者:可可西里 更新时间:2023-11-01 09:49:07 24 4
gpt4 key购买 nike

我们为其他应用程序创建一个DLL来加载和使用应用程序中的一些功能。 DLL 依赖于它从中加载的实际路径。

  <product_home>/bin/<DLL is here>
|
|----/configdir/configfile
|----/lib/<java jarfiles>

它需要product_home 位置来读取配置文件和加载jar 文件等

我的 Windows 应用程序预加载了一个特殊的 DLL。我需要在此过程中找到加载的 DLL 的实际路径,并使用它来设置“HOME”变量。这将在其余处理中使用。当机器上存在多个版本的 dll 时,有时使用外部设置的环境变量会失败。在我看来,只要 DLL 可以获得实际加载的位置,它就可以找出自己的“product_home”。

DLL 本文Get Your DLL's Path/Name提供了一种这样的方式-(尚未成功尝试。生成的exe崩溃)。这是正确的方法吗?

最佳答案

要么我不明白你的需求,要么你提到的链接不是你需要的。如果我没理解错的话,你想获得进程加载的某个 DLL 的完整路径。因此,假设 DLL 是“kernel32.dll”,您希望获得“c:\windows\system32\kernel32.dll”。如果我错了,请纠正我。

如果这是您想要的,最简单的方法是:

HMODULE hModule = GetModuleHandle(_T("kernel32.dll"));
TCHAR dllPath[_MAX_PATH];
GetModuleFileName(hModule, dllPath, _MAX_PATH);

为简洁起见省略了失败检查 - 阅读更多关于 GetModuleHandle 的信息和 GetModuleFileName .

关于windows - 如何在 Windows 进程 (XP/Windows 7) 中找到已加载 DLL 的实际路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6705531/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com