Невозможно использовать EMDK for.NET
Я разрабатываю мобильное приложение, которое использует сканер штрих-кода (Motorola MC75A). Я установил EMDK для .NET v2.5.
Я использую символ библиотеки.dll и символ.barcode2.dll для использования сканера штрих-кодов. Но я получаю ошибки при запуске кода на устройстве эмулятора с Windows Mobile 6.5.
код:
Barcode2 myBarcode2 = null;
Device MyDevice = SelectDevice.Select(
"Barcode",Symbol.Barcode2.Devices.SupportedDevices);// Exception here
исключения:
{"Can't find PInvoke DLL 'SCNAPI32.dll'."}
мне нужен другой эмулятор или что-то еще?
спасибо
2 ответов
НАСКОЛЬКО Я ЗНАЮ, SCNAPI32.dll-это собственная dll, которая присутствует на устройствах motorola (загружается из ПЗУ) и вызывается dll-символом. Эмулятор не является устройством motorola, поэтому эти библиотеки не установлены. Если устройство имеет USB-кабель, вы можете подключить его с помощью ActiveSync (или Windows mobility center) и отладить на самом устройстве; я не знаю, есть ли у motorola эмуляторы.
Если вам действительно нужно, чтобы проверить приложение с помощью эмулятора по умолчанию, вы можете создать пустой символ.dll и символ.barcode2.dll, воссоздать тот же интерфейс, что и Symbol и отладить с помощью них. Вместо активации сканера вы могли бы тогда Console.WriteLine("Scanner activated");
etc.
я столкнулся с аналогичной проблемой с Symbol & Symbol.Звуковой. Мое сообщение об ошибке
Не удается найти PInvoke DLL ' AudioAPI32.библиотеки DLL'
оказывается, есть смоделированные режимы для некоторых символов "устройства". Библиотеки символов Motorola обнаруживают эти режимы с помощью реестра устройства или эмулятора. Для доступа к реестру эмулятора можно использовать Visual Studio Remote Tools \ Удаленный Редактор Реестра
тогда просто подключитесь к вашему эмулятор (Windows Mobile 6.5.3 профессиональный эмулятор), и убедитесь, что нет моделирование значение как "никогда" в
[HKEY_LOCAL_MACHINE\Software\Symbol]
если нет значения Simulation-string, по умолчанию, вероятно, автоматически-в этом случае эмулятор спрашивает, Какой режим вы хотите использовать. Вы также можете попробовать добавить симуляцию как "всегда".
вы также можете добавить проверки, чтобы узнать, доступны ли устройства, для пример:
if (Symbol.Barcode.Device.AvailableDevices == null) return;