Так что, если C # может использовать типы, реализованные в компоненте WinRT, похоже, вы не включили заголовочный файл. Включили ли вы файл заголовка для компонента Windows Rutime в файл pch.h
?
Допустим, у вас есть проектируемый тип времени выполнения Windows с именем Cat
, который находится в компоненте времени выполнения Windows с именем MyComponent
, если имя вашего файла .winmd - "MyComponent.winmd", выполните следующие действия:
В вашем потребляющем проекте (например, в .exe) добавьте ссылку на файл .winmd.
Построить проект (должен сделать это!)
Включите заголовок для него в файл pch.h
:
#include "winrt/MyComponent.h" <-- don't forget!
Как только это будет сделано, вы сможете найти Cat (не забудьте разрешение области видимости пространства имен и т. Д.)
// some consuming .cpp file
#include "pch.h"
using namespace winrt;
using namespace Windows::Foundation;
using namespace MyComponent; // <-- Add for convenience ...or not
App::App()
{
Cat tabby(); // <-- Should work like a charm ;)
}