2011-10-14 13 views
6

Sto sviluppando un'applicazione mobile che utilizza uno scanner di codici a barre (Motorola MC75A). Ho installato EMDK per .NET v2.5.Impossibile utilizzare EMDK per. NET

Uso le librerie Symbol.dll e Symbol.barcode2.dll per l'uso dello scanner di codici a barre. Ma ottengo errori quando eseguo il codice sul dispositivo di emulazione con Windows Mobile 6.5.

Codice:

Barcode2 myBarcode2 = null; 
Device MyDevice = SelectDevice.Select(
"Barcode",Symbol.Barcode2.Devices.SupportedDevices);// Exception here 

Eccezione:

{"Can't find PInvoke DLL 'SCNAPI32.dll'."} 

ho bisogno di un altro emulatore o qualcos'altro?

Grazie

risposta

10

AFAIK, SCNAPI32.dll è una DLL nativa, che è presente su dispositivi Motorola (caricate dalla ROM) e richiamati dal simbolo DLL. L'emulatore non è un dispositivo motorola quindi non ha queste librerie installate. Se il dispositivo ha un cavo USB, è possibile collegarlo tramite ActiveSync (o il centro di mobilità di Windows) e eseguire il debug sul dispositivo stesso; Non so se motorola abbia qualche emulatore.

Se è davvero necessario testare l'applicazione utilizzando l'emulatore di default, è possibile creare un Symbol.dll vuoto e Symbol.barcode2.dll, ricreare la stessa interfaccia di Symbol e di debug usando quelli. Invece di attivare uno scanner è possibile quindi Console.WriteLine("Scanner activated"); ecc.

+0

Grazie per la rapida risposta – eicruzado

3

Ho riscontrato un problema simile a Symbol & Symbol.Audio. Il mio messaggio di errore era

Non riesci a trovare PInvoke DLL 'AudioAPI32.dll'

Si scopre i modi ci sono simulate per alcuni "dispositivi" Symbol. Le librerie Symbol Symbol rilevano queste modalità utilizzando il registro del dispositivo o dell'emulatore. Per accedere al Registro di emulatore, è possibile utilizzare Visual Studio Tools Remote \ Remote Registry Editor

Poi basta connettersi al emulatore (Windows Mobile 6.5.3 Professionista Emulator), e assicurarsi che non c'è Simulazione valore come ' mai' in

[HKEY_LOCAL_MACHINE \ Software \ Symbol]

Se non v'è alcun valore di simulazione-string, il valore predefinito è probabilmente Auto - nel qual caso l'emulatore chiede quale modalità si vuole uso. Puoi anche provare ad aggiungere la simulazione come "Sempre".

Si potrebbe anche aggiungere i controlli per vedere se i dispositivi sono disponibili, ad esempio:

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

+0

aggiungo il valore di simulazione, ma ancora ottengo l'errore. Immagino che il modo unico per testare il codice sia il debugging del dispositivo. Grazie per la risposta. – eicruzado

+0

Impostare il valore di simulazione su "Sempre" ha funzionato per me, anche se ora continua a leggere gli eventi di lettura ... – Geoff

Problemi correlati