系统如何确定给定的DLL是否是.NET DLL?

时间:2010-07-15 09:03:18

标签: .net

系统如何确定给定的DLL是.NET DLL还是Win32 DLL?

3 个答案:

答案 0 :(得分:1)

Windows上的DLL和Exe文件符合可移植可执行文件(PE)文件格式(有关详细信息,请参阅here)。

.Net元数据存储在CLR数据部分的PE文件中。

如果PE文件具有CLR数据部分,则DLL或Exe是.Net程序集。如果它没有那么,AFAIK,它不是。

有关PE文件格式的详细信息,请参阅here

答案 1 :(得分:0)

系统与它没有任何关系。这是使用它的代码必须知道该怎么做。如果您正在编写.NET应用程序并且想要添加一个dll,那么如果它是.net,则只需CLR知道该怎么做(IL中的单个指令)。如果不是那么你必须做它,例如。声明来自该库的函数。这是严格的编译时决定。

答案 2 :(得分:0)

阅读.Net Assemblies。最简单的方法是查找程序集元数据。 .Net程序集具有IL代码,因此它们与包含二进制代码的普通库完全不相似。