前提:不借助Depends工具 编程怎么实现?比如LoadLibraryEx()返回0, GetLastError()返回126 未找到指定模块.
我如何列出这些依赖的模块名呢?是要分析PE格式么?
但是比如我写这样一个控制台程序Test.exe:
int _tmain(int argc, _TCHAR* argv[])
{
if (argc < 2) return 0;
TCHAR* filePath = argv[1];
HMODULE hModule = LoadLibraryEx(filePath, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
if(hModule != NULL) FreeLibrary(hModule);
return 0;
}运行输入一个Dll,LoadLibraryEx失败本身就会有这样的提示提示你少了XXX.dll,它是怎么做到的?DLL依赖
我如何列出这些依赖的模块名呢?是要分析PE格式么?
但是比如我写这样一个控制台程序Test.exe:
int _tmain(int argc, _TCHAR* argv[])
{
if (argc < 2) return 0;
TCHAR* filePath = argv[1];
HMODULE hModule = LoadLibraryEx(filePath, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
if(hModule != NULL) FreeLibrary(hModule);
return 0;
}运行输入一个Dll,LoadLibraryEx失败本身就会有这样的提示提示你少了XXX.dll,它是怎么做到的?DLL依赖
最终顺藤摸瓜我在MSDN找到了这篇文章:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682621(v=vs.85).aspx关键函数:EnumProcessModules