列出DLL的导出函数

我正在寻找一种方法(在C ++ / Windows中)使用dbgHelp列出DLL中的导出函数(甚至可能是未导出的方法)。
有谁知道哪种方法可以做到这一点?
谢谢 :)

Solutions Collecting From Web of "列出DLL的导出函数"

这里有代码来做到这一点。 我已经清理了一下,它在下面显示的场景中工作,从coreel32.Dll检索函数名称。

 #include "imagehlp.h" void ListDLLFunctions(string sADllName, vector<string>& slListOfDllFunctions) { DWORD *dNameRVAs(0); _IMAGE_EXPORT_DIRECTORY *ImageExportDirectory; unsigned long cDirSize; _LOADED_IMAGE LoadedImage; string sName; slListOfDllFunctions.clear(); if (MapAndLoad(sADllName.c_str(), NULL, &LoadedImage, TRUE, TRUE)) { ImageExportDirectory = (_IMAGE_EXPORT_DIRECTORY*) ImageDirectoryEntryToData(LoadedImage.MappedAddress, false, IMAGE_DIRECTORY_ENTRY_EXPORT, &cDirSize); if (ImageExportDirectory != NULL) { dNameRVAs = (DWORD *)ImageRvaToVa(LoadedImage.FileHeader, LoadedImage.MappedAddress, ImageExportDirectory->AddressOfNames, NULL); for(size_t i = 0; i < ImageExportDirectory->NumberOfNames; i++) { sName = (char *)ImageRvaToVa(LoadedImage.FileHeader, LoadedImage.MappedAddress, dNameRVAs[i], NULL); slListOfDllFunctions.push_back(sName); } } UnMapAndLoad(&LoadedImage); } } int main(int argc, char* argv[]) { vector<string> names; ListDLLFunctions("KERNEL32.DLL", names); return 0; } 

如果你满足于其他工具,那么有一个数字列出导出的函数。 一个是微软的dumpbin 使用/exports选项。

干杯&hth。,