6

バーコード スキャナ (Motorola MC75A) を使用するモバイル アプリケーションを開発しています。EMDK for .NET v2.5 をインストールしました。

バーコード スキャナーの使用には、ライブラリ Symbol.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'."}

別のエミュレーターまたは何か他のものが必要ですか?

ありがとう

4

2 に答える 2

10

私の知る限り、SCNAPI32.dll はネイティブ dll であり、モトローラ デバイス (ROM からロード) に存在し、Symbol dll によって呼び出されます。エミュレータは Motorola デバイスではないため、これらのライブラリはインストールされていません。デバイスに USB ケーブルがある場合は、ActiveSync (または Windows モビリティ センター) を使用して接続し、デバイス自体でデバッグできます。モトローラにエミュレータがあるかどうかはわかりません。

デフォルトのエミュレーターを使用してアプリケーションをテストする必要がある場合は、空の Symbol.dll と Symbol.barcode2.dll を作成し、Symbol と同じインターフェイスを再作成して、それらを使用してデバッグすることができます。スキャナーをアクティブにする代わりに、次のことができますConsole.WriteLine("Scanner activated");

于 2011-10-14T23:24:26.297 に答える
3

Symbol & Symbol.Audio で同様の問題が発生しました。私のエラーメッセージは

PInvoke DLL 'AudioAPI32.dll' が見つかりません

Symbol の「デバイス」にはシミュレートされたモードがあることがわかりました。モトローラ シンボル ライブラリは、デバイスまたはエミュレータのレジストリを使用してこれらのモードを検出します。エミュレーター レジストリにアクセスするには、Visual Studio Remote Tools \ Remote Registry Editorを使用できます。

次に、エミュレーター (Windows Mobile 6.5.3 Professional Emulator) に接続し、「Never」のシミュレーション値がないことを確認します。

[HKEY_LOCAL_MACHINE\ソフトウェア\シンボル]

Simulation-string 値がない場合、デフォルトはおそらく Auto です。この場合、エミュレーターは使用するモードを尋ねます。Simulation を「Always」として追加することもできます。

デバイスが利用可能かどうかを確認するチェックを追加することもできます。たとえば、次のようになります。

if (Symbol.Barcode.Device.AvailableDevices == null) return;

于 2012-02-23T12:34:38.537 に答える