Jay*_*yan 2 windows dll win32-process
我们为其他应用程序创建一个DLL,以加载和使用应用程序中的某些功能.DLL依赖于加载它的实际路径.
<product_home>/bin/<DLL is here>
|
|----/configdir/configfile
|----/lib/<java jarfiles>
Run Code Online (Sandbox Code Playgroud)
它需要product_home位置来读取配置文件和加载jar文件等
我的Windows应用程序会扩展一个特殊的DLL.我需要在进程中找到加载的DLL的实际路径,并使用它来设置"HOME"变量.这将用于其余的处理.当机器上存在多个dll版本时,使用外部设置的环境变量会失败一段时间.对我来说,看起来像DLL可以找到自己的"product_home",只要它可以获得实际加载的位置.
DLL本文获取DLL的路径/名称提供了一种这样的方式 - (但是要成功尝试它.生成的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);
Run Code Online (Sandbox Code Playgroud)
为简洁省略了失败检查 - 阅读有关GetModuleHandle和GetModuleFileName的更多信息.
| 归档时间: |
|
| 查看次数: |
5443 次 |
| 最近记录: |