.net windows平台上不同类型的DLL

.net windows平台上不同类型的DLL,.net,c++,dll,com,.net,C++,Dll,Com,在windows平台上可以找到几种类型的DLL 旧式本机dll COM动态链接库 .NET动态链接库 在上面的列表中我还缺少其他dll类型吗?还有,这些之间的区别是什么 TIA如果不考虑DLL的用途,则只有一种类型的32位DLL 它具有PE(可移植可执行文件)格式,并导出函数和数据以及资源 如果您区分不同类型的内容,那么DLL的不同“类型”的数量是无限的。例如,DLL可能只包含程序的资源。或者它可能包含某些解释器的字节码(例如.NETDLL)。或者别的什么。例如,如果您最喜欢在Windows中直

在windows平台上可以找到几种类型的DLL

  • 旧式本机dll
  • COM动态链接库
  • .NET动态链接库
  • 在上面的列表中我还缺少其他dll类型吗?还有,这些之间的区别是什么


    TIA

    如果不考虑DLL的用途,则只有一种类型的32位DLL

    它具有PE(可移植可执行文件)格式,并导出函数和数据以及资源

    如果您区分不同类型的内容,那么DLL的不同“类型”的数量是无限的。例如,DLL可能只包含程序的资源。或者它可能包含某些解释器的字节码(例如.NETDLL)。或者别的什么。例如,如果您最喜欢在Windows中直接支持的应用程序,则控制面板小程序是DLL,COM类型库是DLL,外壳名称空间扩展通常是DLL,这会导致您将不同类型的COM DLL区分为DLL的“类型”。正如他们常说的,它只受你的想象力和你的“类型”概念的限制——不管这个概念是什么


    干杯&hth.,

    如果不考虑DLL的用途,那么只有一种类型的32位DLL

    它具有PE(可移植可执行文件)格式,并导出函数和数据以及资源

    如果您区分不同类型的内容,那么DLL的不同“类型”的数量是无限的。例如,DLL可能只包含程序的资源。或者它可能包含某些解释器的字节码(例如.NETDLL)。或者别的什么。例如,如果您最喜欢在Windows中直接支持的应用程序,则控制面板小程序是DLL,COM类型库是DLL,外壳名称空间扩展通常是DLL,这会导致您将不同类型的COM DLL区分为DLL的“类型”。正如他们常说的,它只受你的想象力和你的“类型”概念的限制——不管这个概念是什么


    干杯&hth.,

    。我相信,NET DLL确实从Windows获得了特殊处理。正如你所说,其余的都只是PE DLL的具体例子。@Ben Voigt:那会是什么特殊处理?在我看来,这种行为似乎来自.NETCLR(mscoree.dll)或Mono。对于已注册的COM DLL,我知道Windows可以在代理进程和marshall接口中托管它们。那肯定是特殊处理,;普通的DLL不理解。@MSalters:代理DLL的特殊处理来自COM API,它只是一个随Windows分发的库,可以说是操作系统的一部分,也可以说不是。另一方面,NET模块从操作系统加载程序(对于WinXP和更高版本)获得不同的行为,这就是纯MSIL程序集如何加载到具有不同位的进程中。@Ben Voight:差不多了。特殊的.NET处理始于Windows Server 2003。第一个经过特殊处理的客户端操作系统是Vista。对于Windows XP,mscoree.dll提供所有.NET处理。我相信“特殊处理”基本上是优化,但可能还有更多;这不是我的领域。@Euro:可能不是XP RTM,而是添加到服务包中?操作系统加载器集成是使
    AnyCPU
    正常工作所必需的。我相信,NET DLL确实从Windows获得了特殊处理。正如你所说,其余的都只是PE DLL的具体例子。@Ben Voigt:那会是什么特殊处理?在我看来,这种行为似乎来自.NETCLR(mscoree.dll)或Mono。对于已注册的COM DLL,我知道Windows可以在代理进程和marshall接口中托管它们。那肯定是特殊处理,;普通的DLL不理解。@MSalters:代理DLL的特殊处理来自COM API,它只是一个随Windows分发的库,可以说是操作系统的一部分,也可以说不是。另一方面,NET模块从操作系统加载程序(对于WinXP和更高版本)获得不同的行为,这就是纯MSIL程序集如何加载到具有不同位的进程中。@Ben Voight:差不多了。特殊的.NET处理始于Windows Server 2003。第一个经过特殊处理的客户端操作系统是Vista。对于Windows XP,mscoree.dll提供所有.NET处理。我相信“特殊处理”基本上是优化,但可能还有更多;这不是我的领域。@Euro:可能不是XP RTM,而是添加到服务包中?要使
    AnyCPU
    工作,需要集成操作系统加载程序。