.Net DLL与C ++ DLL

时间:2012-05-17 11:20:28

标签: c++ .net dll

如何在不查看代码的情况下区分.NET DLL和C ++ DLL。从任何PE文件资源管理器查看DLL后,我们可以通过查看导出表或DLL的其他部分来识别它吗?

2 个答案:

答案 0 :(得分:1)

您可以使用corflags

对于.NET c#DLL,我得到了

Microsoft(R).NET Framework CorFlags转换工具。版本4.0.30319.1 版权所有(c)Microsoft Corporation。保留所有权利。

版本:v4.0.30319 CLR标题:2.5 PE:PE32 CorFlags:1 非正式:1 32位:0 签名:0

对于我得到的C ++ DLL

corflags:错误CF008:指定的文件没有有效的托管标题

****更新****

我可能误解了这个问题。这是一个关于类似问题的好问题。 How can I test a Windows DLL file to determine if it is 32 bit or 64 bit?

答案 1 :(得分:0)

事实上,通过查看图像文件可以清楚地表明这一点,并由Portable Executable format specification记录。如果目录[IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR]存在(非EMPTY),则图像将被管理(.NET),否则图像将不受管理。