我在c ++ / winrt WRC项目中的IDL文件中有一些结构和枚举。
因此,可以在C ++和C#之间共享数据结构。
将Winmd添加到UWP C#项目中,然后可以看到类型
然后尝试winrt项目
Winrt CoreApp项目在添加winmd之后构建良好,但从未看到类型。
Winrt Blank项目由于我的类型而无法在某些与xaml相关的文件中编译,仅仅是由于添加winmd造成的。
但是C#UWP项目没有此类问题。在C#uwp中,我可以看到我的类型并使用它没有问题。
欢呼
答案 0 :(得分:0)
因此,如果C#可以使用WinRT组件中实现的类型,则听起来您可能未包含头文件。您是否在YES
文件中包含Windows Rutime组件的头文件?
假设您在Windows运行时组件名为pch.h
的Windows运行时投影类型为Cat
中,如果.winmd文件的名称为“ MyComponent.winmd”,请执行以下操作:
在使用中的项目(例如,您的.exe)中,添加对.winmd文件的引用。
构建项目(必须执行此操作!)
在您的MyComponent
文件中包含标题:
pch.h
完成后,您应该能够找到Cat(不要忘记名称空间范围解析等)
#include "winrt/MyComponent.h" <-- don't forget!