C ++ Winrt Winmd在C#UWP项目中可见,但在C ++ Winrt Project中不可见

时间:2018-09-12 16:41:52

标签: uwp idl c++-winrt winmd

我在c ++ / winrt WRC项目中的IDL文件中有一些结构和枚举。

因此,可以在C ++和C#之间共享数据结构。

将Winmd添加到UWP C#项目中,然后可以看到类型

然后尝试winrt项目

  1. Winrt CoreApp项目在添加winmd之后构建良好,但从未看到类型。

  2. Winrt Blank项目由于我的类型而无法在某些与xaml相关的文件中编译,仅仅是由于添加winmd造成的。

但是C#UWP项目没有此类问题。在C#uwp中,我可以看到我的类型并使用它没有问题。

欢呼

1 个答案:

答案 0 :(得分:0)

因此,如果C#可以使用WinRT组件中实现的类型,则听起来您可能未包含头文件。您是否在YES文件中包含Windows Rutime组件的头文件?

假设您在Windows运行时组件名为pch.h的Windows运行时投影类型为Cat中,如果.winmd文件的名称为“ MyComponent.winmd”,请执行以下操作:

  1. 在使用中的项目(例如,您的.exe)中,添加对.winmd文件的引用。

  2. 构建项目(必须执行此操作!)

  3. 在您的MyComponent文件中包含标题:

    pch.h

完成后,您应该能够找到Cat(不要忘记名称空间范围解析等)

#include "winrt/MyComponent.h"   <-- don't forget!