C# 无法将EMDK用于.NET

C# 无法将EMDK用于.NET,c#,.net,barcode,motorola-emdk,C#,.net,Barcode,Motorola Emdk,我正在开发一个使用条形码扫描仪的移动应用程序(摩托罗拉MC75A)。我为.NETV2.5安装了EMDK 我使用Symbol.dll和Symbol.barcode2.dll库来使用条形码扫描仪。但是,当我在装有WindowsMobile 6.5的模拟器设备上运行代码时,会出现错误 代码: 例外情况: {"Can't find PInvoke DLL 'SCNAPI32.dll'."} 我需要另一个模拟器还是其他什么 感谢AFAIK,SCNAPI32.dll是一个本机dll,它存在于摩托罗拉设备上

我正在开发一个使用条形码扫描仪的移动应用程序(摩托罗拉MC75A)。我为.NETV2.5安装了EMDK

我使用Symbol.dll和Symbol.barcode2.dll库来使用条形码扫描仪。但是,当我在装有WindowsMobile 6.5的模拟器设备上运行代码时,会出现错误

代码:

例外情况:

{"Can't find PInvoke DLL 'SCNAPI32.dll'."}
我需要另一个模拟器还是其他什么


感谢AFAIK,SCNAPI32.dll是一个本机dll,它存在于摩托罗拉设备上(从ROM加载),由符号dll调用。emulator不是motorola设备,因此没有安装这些库。如果设备有USB电缆,您可以使用ActiveSync(或windows mobility center)将其连接起来,并在设备上进行调试;我不知道摩托罗拉是否有仿真器


如果确实需要使用默认仿真器测试应用程序,可以创建空的Symbol.dll和Symbol.barcode2.dll,重新创建与Symbol相同的接口,并使用这些接口进行调试。然后,您可以
Console.WriteLine(“扫描仪已激活”)等等。

我在Symbol&Symbol.Audio上遇到了类似的问题。我的错误消息是

找不到PInvoke DLL“AudioAPI32.DLL”

事实证明,有些符号“设备”有模拟模式。摩托罗拉符号库使用设备或模拟器的注册表检测这些模式。要访问Emulator注册表,可以使用Visual Studio远程工具\远程注册表编辑器

然后只需连接到您的模拟器(Windows Mobile 6.5.3 Professional emulator),并确保中没有作为“从不”的模拟值

[HKEY\U本地\U机器\软件\符号]

如果没有模拟字符串值,默认值可能是自动-在这种情况下,仿真器会询问您要使用哪种模式。您也可以尝试“始终”添加模拟

您还可以添加检查以查看设备是否可用,例如:


if(Symbol.Barcode.Device.AvailableDevices==null)返回

我添加了模拟值,但仍然得到了错误。我想测试代码的唯一方法是使用设备进行调试。t答案是否定的。将模拟值设置为“始终”对我有效,尽管现在它不断触发读取事件。。。
{"Can't find PInvoke DLL 'SCNAPI32.dll'."}