第二十章 DLL高级技巧
1.概览
1.1动态加载DLL文件 LoadLibraryEx
HMODULE LoadLibraryEx(
PCTSTR pszDLLPathName,
HANDLE hFile,
DWORD dwFlags);
返回DLL加载到进程空间原首地址。
dwFlags 可以有以下几个值
(1) DONT_RESOLVE_DLL_REFERENCES
建议永远不要使有这个值,它的存在仅仅是为了向后兼容、
更多内容请访问:http://blogs.msdn.com/oldnewthing/archive/2005/02/14/372266.aspx
(2) LOAD_LIBRARY_AS_DATAFILE
把要加载的DLL文件以数据文件的形式加载到进程中。
GetModuleHandle和GetProcAddress返回NULL
(3) LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE
与前者相同,不同的时独占打开,禁止其它进程访问和修改该DLL中的内容。
(4) LOAD_LIBRARY_AS_IMAGE_RESOURCE
不修改DLL中的RVA,以image的形式加载到进程中。常与LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE一起使用。
(5) LOAD_WITH_ALTERED_SEARCH_PATH
修改DLL的加载路径
1.2 D