2015-07-31 3 views
1

Я добавляю Cortana в игру DirectX/XAML Windwos 10. Каждый пример, который я могу найти, указан в C#, а не C++. Обычно это не будет проблемой, но, видимо, я не реализую ее правильно на C++ и нуждаюсь в некоторой помощи с этим.Нужна помощь в загрузке файла Cortana VCD при использовании C++ DirectX/XAML

Назначение этого фрагмента кода - загрузить файл VCD, который Cortana использует для моих голосовых команд, связанных с приложением. Я уже создал файл VCD, используя стандартные примеры.

Это специфический C# код у меня возникают проблемы, реализующий в C++:

var storageFile = 
    await Windows.Storage.StorageFile.GetFileFromApplicationUriAsync(
    new Uri("ms-appx:///myvcdfile.xml")); 
await 
    Windows.ApplicationModel.VoiceCommands.VoiceCommandDefinitionManager. 
    InstallCommandDefinitionFromStorageFileAsync(storageFile); 

Моя попытка C реализация ++ этого:

Uri^ uri = ref new Uri("ms-appx:///myvcdfile.xml"); 
    create_task(StorageFile::GetFileFromApplicationUriAsync(uri)).then([](task<StorageFile^> t) { 
     StorageFile^ sfile = t.get(); 
     Windows::ApplicationModel::VoiceCommands::VoiceCommandDefinitionManager::InstallCommandDefinitionsFromStorageFileAsync(sfile); 
    }); 

Когда я запускаю это, никаких видимых ошибок нет (без немедленного сбоя), но в окне вывода выбрасываются следующие исключения:

Exception thrown at 0x76473E28 (KernelBase.dll) in darksong.exe: 0x40080201: WinRT originate error (parameters: 0x8000000B, 0x00000040, 0x018BE280). 
Exception thrown at 0x76473E28 (KernelBase.dll) in darksong.exe: 0x00000005: Access is denied. 
Exception thrown at 0x76473E28 (KernelBase.dll) in darksong.exe: 0x000006D9: There are no more endpoints available from the endpoint mapper. 
Exception thrown at 0x76473E28 (KernelBase.dll) in darksong.exe: 0x000006D9: There are no more endpoints available from the endpoint mapper. 
Exception thrown at 0x76473E28 (KernelBase.dll) in darksong.exe: 0x40080201: WinRT originate error (parameters: 0x80004005, 0x00000013, 0x0EEAF160). 

Ошибка «access denied» заставляет меня думать, что есть проблема с открытием самого файла, хотя, если я намеренно вводить недопустимое имя файла, это совершенно другая ошибка, которая падает, поэтому я знаю, что она находит файл, но, возможно, имеет некоторые проблемы на самом деле доступ к нему?

Кроме того, даже если я исключаю строку «InstallCommandDefinitionsFromStorageFileAsync()» Исключения все еще бросаются.

Любая помощь приветствуется, спасибо заранее!

ответ

0

Вы, конечно, ошибка в файле XML (если вы установили для Exemple в команду элемента с помощью PhraseList но вы забыли узел PhraseList в вашем XML)