无法使用EMDK for .NET

时间:2011-10-14 21:45:08

标签: c# .net barcode motorola-emdk

我正在开发一种使用条形码扫描仪(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'."}

我还需要其他模拟器吗?

由于

2 个答案:

答案 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;