c++ - 如何从 C++/WinRT 库中导出数据、函数、类
问题描述
通常我们对 c++ 库使用 dllexport/dllimport 方法。然后测试应用程序可以隐式/显式地使用 dll 来访问 dll 函数。我们还可以利用 c++/winRT 中的 .winmd 文件来访问使用测试应用程序的类和函数。
那么这两个概念有什么区别呢?哪个更适合 c++/WinRT 库(dll)。
解决方案
dllexport 和 dllimport允许从 PE 映像导出符号,并使用加载时动态链接导入。想要使用符号的客户端代码需要知道这些符号的名称。
另一方面, WinMD文件为类型提供元数据,包括它们在内存中的布局、可见性或名称。WinMD 元数据不与模块级导出/导入机制竞争,它是互补的。
这个问题,哪个更好,因此没有意义。对于 Windows 运行时组件,您通常会提供描述类型的 WinMD 文件,但 PE 二进制文件仍需要导出某些符号,例如激活工厂,以便RoGetActivationFactory可以完成其工作。
推荐阅读
- powershell - Powershell Import-CSV 不会排序
- javascript - 如何在 Flask 应用程序的 Chart.js 中按比例分配 y-ticks?
- linux - 同一Guest的两个进程的QEMU虚拟CPU之间的内存保护
- pdf - SAS EG - VB 在不显示任何错误消息的情况下无法工作
- amazon-web-services - 如何根据 AWS Glue 作业中数据帧的不同值写入多个 S3 存储桶?
- python - numpy:将numpy数组的每个元素与另一个数组的每个元素相加
- django - Django将字符串数字列表转换为整数不起作用
- c++ - 用字符串创建二叉树。例如:1,2,3,#,#,4,5,#,#,#,#,
- shell - 通过字符串连接获取shell变量值 - POSIX
- angular7 - 输入 npm install -g @angular/cli 后出错