我正在开发一种使用条形码扫描仪(Motorola MC75A)的移动应用程序。我安装了EMDK for .NET v2.5。
我使用Library.dll和Symbol.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'."}
我还需要其他模拟器吗?
由于
答案 0 :(得分:10)
AFAIK,SCNAPI32.dll是一个本机dll,存在于motorola设备上(从ROM加载)并由Symbol dll调用。模拟器不是motorola设备,因此它没有安装这些库。如果设备有USB电缆,您可以使用ActiveSync(或Windows移动中心)将其连接起来并在设备上进行调试;我不知道motorola是否有任何模拟器。
如果您确实需要使用默认模拟器测试应用程序,则可以创建一个空的Symbol.dll和Symbol.barcode2.dll,重新创建与Symbol相同的接口并使用它们进行调试。您可以Console.WriteLine("Scanner activated");
等
答案 1 :(得分:3)
我遇到了与Symbol& amp; Symbol.Audio。我的错误消息是
找不到PInvoke DLL'AudioAPI32.dll'
事实证明,某些符号“设备”存在模拟模式。 Motorola Symbol库使用设备或仿真器的注册表检测这些模式。要访问Emulator注册表,可以使用Visual Studio远程工具\ 远程注册表编辑器
然后只需连接到您的模拟器(Windows Mobile 6.5.3 Professional Emulator),并确保
中没有模拟值为“从不”[HKEY_LOCAL_MACHINE \ SOFTWARE \符号]
如果没有模拟字符串值,则默认值可能为Auto - 在这种情况下,模拟器会询问您要使用的模式。您也可以尝试将模拟添加为“始终”。
您还可以添加检查以查看设备是否可用,例如:
if (Symbol.Barcode.Device.AvailableDevices == null) return;