【发布时间】:2019-10-04 19:37:02
【问题描述】:
我非常了解什么是普通的 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 是一个 UWP DLL,类似于原生 DLL
- 运行时组件 UWP DLL 类似于 C++/CLI 类型的 DLL。
那么这两种新型 UWP DLL 到底是什么?
【问题讨论】:
-
UWP 是本机代码,它只是一组新的库,在经典 API 样式中不可用。但是,您可以在 Win32 应用程序中使用它。 CX 已过时,取而代之的是 C++/WinRT。
-
Kenny Kerr 发表了两篇优秀的文章Windows with C++ - The Windows Runtime Application Model 和Windows with C++ - Windows Runtime Components。它们将形成坚实的基础,消除混乱。
标签: c++ visual-c++ dll uwp windows-runtime