系统如何确定给定的DLL是.NET DLL还是Win32 DLL?
答案 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代码,因此它们与包含二进制代码的普通库完全不相似。