WPF, UWP и оборудование - PullRequest
0 голосов
/ 11 мая 2018

Я только что вернулся из Microsoft Build 2018, где они объявили о поддержке .NET Core 3 для приложений WPF.Это замечательно, потому что я наконец-то могу начать использовать некоторые из тех классных, беглых дизайнерских вещей, которые доступны для UWP.Единственная проблема в том, что он выйдет только в следующем году.

Я начал изучать возможность преобразования моего приложения в приложение UWP (потому что я нетерпеливый), но я сталкиваюсь с некоторыми проблемами.В основном аппаратное обеспечение.Общаясь с несколькими парнями из Build, они создали впечатление, что стало возможным писать приложения UWP, которые подключаются к низкоуровневым драйверам Win32 для связи с оборудованием (HID-принтеры, устройства для чтения карт памяти, сканеры штрих-кода и т. Д.).Мне не повезло найти информацию об этом.Просто чтобы прояснить, это не приложение, которое я хочу выпустить в Windows Store.Это приложение для киосков, которое работает на нашем собственном оборудовании.

Как получить доступ к Win32 API для аппаратной интеграции в UWP?

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Приложение UWP, написанное на C ++ / CX, имеет доступ к Win32 и COM API, которые являются частью универсальной платформы Windows (UWP).API в Win32 и COM API для приложений UWP предназначен только для C ++, вы не можете использовать C # для прямого доступа к нему.См. Справочник по языку Visual C ++ (C ++ / CX) , чтобы получить более подробную информацию о C ++ / CX.

Но вы можете создать компонент среды выполнения Windows в C ++ / CX, а затем вызвать его изC #, вы можете увидеть прохождение здесь:

https://docs.microsoft.com/en-us/windows/uwp/winrt-components/walkthrough-creating-a-basic-windows-runtime-component-in-cpp-and-calling-it-from-javascript-or-csharp

0 голосов
/ 11 мая 2018

Ваша лучшая ставка, вероятно, будет использовать P / Invoke , которая предназначена для того, чтобы код .NET вызывал неуправляемый код. Предполагая, что ваше оборудование доступно через Win32 API в DLL, это может быть вашим лучшим вариантом.

Веб-сайт pinvoke.net содержит конкретные примеры кода .NET, необходимого для вызова определенного Win32 API. Возможно, эти примеры помогут вам начать работу.

...