1

通常我们对 c++ 库使用 dllexport/dllimport 方法。然后测试应用程序可以隐式/显式地使用 dll 来访问 dll 函数。我们还可以利用 c++/winRT 中的 .winmd 文件来访问使用测试应用程序的类和函数。

那么这两个概念有什么区别呢?哪个更适合 c++/WinRT 库(dll)。

4

1 回答 1

2

dllexport 和 dllimport允许从 PE 映像导出符号,并使用加载时动态链接导入。想要使用符号的客户端代码需要知道这些符号的名称。

另一方面, WinMD文件为类型提供元数据,包括它们在内存中的布局、可见性或名称。WinMD 元数据不与模块级导出/导入机制竞争,它是互补的。

这个问题,哪个更好,因此没有意义。对于 Windows 运行时组件,您通常会提供描述类型的 WinMD 文件,但 PE 二进制文件仍需要导出某些符号,例如激活工厂,以便RoGetActivationFactory可以完成其工作。

于 2021-04-08T10:55:36.860 回答