【发布时间】:2010-11-28 02:08:30
【问题描述】:
我需要处理文件夹中的多个 dll 和 exe 文件,并确定我正在处理的文件类型:.NET、COM、Win32 或其他一些外星生命形式。
我一直在尝试确定检测 DLL 类型的最简单方法,您对此有何看法:
COM dll => 我做了一个 LoadLibrary,然后 GetProcAddress 用于“DllRegisterServer”。如果我得到一个有效的回报,那就是一个 COM 文件。
.NET dll => 如果 dll 依赖于 MSCOREE.DLL 它总是一个 .NET dll?
Win32 dll => 如果上述两个测试都失败了,那是 Win32 dll 吗?
肯定有更好的方法来检测我们正在处理的 dll 类型。以上内容非常笨重,不适用于EXE文件?一定有其他我没有想到的方法。
理想情况下,我希望能够让解析器确定文件是用什么编译器编译的,以及它使用了哪些功能,例如 MFC、Atl、Stl 等……但我怀疑这在预反思中是可能的时代?
【问题讨论】: