[Windows编程] 使用.local 重定向DLL 加载路径
2008-12-27 14:26
405 查看
在调试DLL或COM程序的时候, DLL文件可能会被其他程序占用,而无法被替换。 在WinXP,Vista 上, 可以通过创建.local 文件夹来重定向DLL 的加载路径
步骤(假设你的EXE为MyApp.exe, 要调试的DLL为 MyModule.dll):
1) 在 MyApp.exe 的目录下创建一个 MyApp.exe.local
2) 把你希望加载的 MyModule.dll 复制到 MyApp.exe.local 目录下
3) 运行 MyApp.exe
原来的 E:\Test\MyApp.exe 加载的DLL
ModLoad: 00400000 00432000 MyApp.exe
ModLoad: 7c800000 7c8f4000 C:\windows\system32\kernel32.dll
ModLoad: 77c10000 77c68000 C:\windows\system32\msvcrt.dll
ModLoad: 00440000 00c80000 C:\windows\system32\MyModule.dll
ModLoad: 77dd0000 77e6b000 C:\windows\system32\ADVAPI32.dll
创建.local 文件夹之后,E:\Test\MyApp.exe 加载的DLL
ModLoad: 00400000 00432000 MyApp.exe
ModLoad: 7c800000 7c8f4000 C:\windows\system32\kernel32.dll
ModLoad: 77c10000 77c68000 C:\windows\system32\msvcrt.dll
ModLoad: 00440000 00c80000 E:\Test\MyApp.exe.Local\MyModule.dll
ModLoad: 77dd0000 77e6b000 C:\windows\system32\ADVAPI32.dll
注意: 要打开.local这个功能,需要在注册表设置DevOverrideEnable值,并且重启机器
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options]
"DevOverrideEnable"=dword:00000001
【小窍门】 可以在命令行输入以下命令来设置注册表:
reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" /v DevOverrideEnable /t REG_DWORD /d 1 /f
步骤(假设你的EXE为MyApp.exe, 要调试的DLL为 MyModule.dll):
1) 在 MyApp.exe 的目录下创建一个 MyApp.exe.local
2) 把你希望加载的 MyModule.dll 复制到 MyApp.exe.local 目录下
3) 运行 MyApp.exe
原来的 E:\Test\MyApp.exe 加载的DLL
ModLoad: 00400000 00432000 MyApp.exe
ModLoad: 7c800000 7c8f4000 C:\windows\system32\kernel32.dll
ModLoad: 77c10000 77c68000 C:\windows\system32\msvcrt.dll
ModLoad: 00440000 00c80000 C:\windows\system32\MyModule.dll
ModLoad: 77dd0000 77e6b000 C:\windows\system32\ADVAPI32.dll
创建.local 文件夹之后,E:\Test\MyApp.exe 加载的DLL
ModLoad: 00400000 00432000 MyApp.exe
ModLoad: 7c800000 7c8f4000 C:\windows\system32\kernel32.dll
ModLoad: 77c10000 77c68000 C:\windows\system32\msvcrt.dll
ModLoad: 00440000 00c80000 E:\Test\MyApp.exe.Local\MyModule.dll
ModLoad: 77dd0000 77e6b000 C:\windows\system32\ADVAPI32.dll
注意: 要打开.local这个功能,需要在注册表设置DevOverrideEnable值,并且重启机器
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options]
"DevOverrideEnable"=dword:00000001
【小窍门】 可以在命令行输入以下命令来设置注册表:
reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" /v DevOverrideEnable /t REG_DWORD /d 1 /f
相关文章推荐
- [Windows编程] 使用.local 重定向DLL 加载路径
- [Windows编程] 使用.local 重定向DLL 加载路径
- 使用.local 重定向DLL 加载路径
- Windows编程 - 遍历程序使用的动态链接库(dll) 代码(C++)
- demo集合第1弹:加载windows dll库,并使用dll中函数的方法
- Windows 核心编程之Dll 延时加载
- Windows编程 C++ DLL编程 学习笔记(一)静态链接库的创建和使用
- Windows用来定位DLL的搜索路径(静态加载和动态加载)
- Windows编程 C++ DLL编程 学习笔记(一)静态链接库的创建和使用
- VC++以DLL方式加载和使用SQLite数据库
- 关于Windows平台下应用程序加载DLL模块的问题.
- Lua模块化编程——使用require加载自己的dll模块
- Spring AntMatcher 使用路径通配符加载Resource
- DLL加载设置相对路径的方法
- Windows编程 基本资源的使用 如何在窗口中输出一些简单的文本
- Python调用windows下DLL详解 - ctypes库的使用
- 背水一战 Windows 10 (63) - 控件(WebView): 基础知识, 加载 html, http, https, ms-appx-web:///, embedded resource, ms-appdata:///, ms-local-stream://
- windows 核心编程之在应用程序中使用虚拟内存
- 关于VS的延迟加载dll的使用和理解
- 基于visual c++之windows核心编程代码分析(63)无模块dll进程注射