读取 EXE 或 DLL 的清单而不加载它

Posted

技术标签:

【中文标题】读取 EXE 或 DLL 的清单而不加载它【英文标题】:Reading the manifest of an EXE or DLL without loading it 【发布时间】:2012-09-14 09:29:35 【问题描述】:

是否可以在 C++ 中读取 EXE 文件或 DLL 的清单而不加载它? 我读到有一些API函数,例如FindResourceEx,但它们需要LoadLibrary获得的HMODULE。 (我确实有要从中获取清单的 exe 或 DLL 的文件句柄)。

【问题讨论】:

阅读此链接,了解如何从 .Exe 文件中提取它:***.com/questions/420852/… 但他们实际上加载了库。我不想那样做。 【参考方案1】:

您还可以从LoadLibraryEx(file, 0, LOAD_LIBRARY_AS_DATAFILE | LOAD_LIBRARY_AS_IMAGE_RESOURCE) 获得HMODULE

【讨论】:

以上是关于读取 EXE 或 DLL 的清单而不加载它的主要内容,如果未能解决你的问题,请参考以下文章

jar 文件的版本,通过使用 powershell 读取其清单

我自己的(本机)DLL 的清单

[程序集清单定义与程序集引用不匹配]分析及解决

VSTO加载项:清单中的引用与下载的程序集的标识不匹配

无法加载 DLL 文件

由于这个原因,在.net世界中使用了清单