SetEventSink () API-интерфейса датчика для консольного приложения Windows - PullRequest
0 голосов
/ 12 декабря 2018

В настоящее время я использую асинхронный обратный вызов для получения данных движения через API-интерфейс датчика Window.Сейчас я хочу проверить функциональность через консольное приложение Windows 10 (НЕ приложение Windows).Чтобы упростить задачу, в настоящее время у меня возникает та же проблема, что и у Как заставить мою программу на C ++ ждать события датчика навсегда и не завершать , где

while(true) { hr = sensor->SetEventSink(pMyEvents); } запускает событие иЯ получаю непротиворечивые данные, но правильное использование должно быть просто

hr = sensor->SetEventSink(pMyEvents);, что вызовет событие асинхронно.

Я также использовал CoInitializeEx(NULL, COINIT_MULTITHREADED);, чтобы разрешить многопоточность в COM.

В комментариях в приведенной выше ссылке SO два пользователя упоминают, что «вы забыли цикл обработки сообщений Windows».Я не хочу иметь графический интерфейс для этой программы, и что более важно, я не понимаю, почему «COM не будет работать без цикла сообщений».Похоже, это относится только к проектам приложений Windows.Может ли кто-нибудь уточнить это и как правильно использовать SetEventSink(ISensorEvent), чтобы продолжать получать данные для обычного консольного приложения?

Я подтвердил, что другой код, например для инициализации / декодирования данных, использует синхронный метод -GetData().

...