之间的区别:本机DLL,UWP DLL和C ++ / CLI DLL

时间:2019-05-17 13:00:23

标签: c++ visual-c++ dll uwp windows-runtime

我非常清楚什么是香草Win32本机DLL(没有UWP,没有RT,没有CLR)。我也知道基于C ++ / CLI的DLL,它们支持以任何语言编写的.NET兼容程序。

这两种UWP DLL类型让我感到困惑:

  • 通用Windows- C ++ / CX
  • 通用Windows- Windows运行时组件

创建基于UWP组件的DLL时,它将添加(允许)要导出的类(问题的一部分是:它们是CLR投诉类吗?)。 Dependency Walker显示它已链接到某些非标准/非本地DLL。

创建基于UWP CX的DLL时,它只是本机DLL。 Dependency Walker显示它已链接到Kernel32.DLL等。

至此,我得出以下结论:

  • C ++ / CX是类似于本地DLL的UWP DLL
  • 运行时组件UWP DLL与C ++ / CLI类型的DLL相似。

那么,这两种新型的UWP DLL到底是什么?

1 个答案:

答案 0 :(得分:1)

它们都是本机代码。 C ++ / CX与C ++ / CLI共享一些语法,但是与.NET没有关系。 Windows运行时组件是可重用的组件,可以使用任何受支持的语言(C ++,C#,VB,JavaScript)从其他应用程序中调用。另一个项目只是一个独立的应用程序。

请注意,CLR依赖项仅在调试版本中存在(由于某些XAML调试依赖项);在Release版本中,没有CLR依赖项。