2011-10-14 14 views
6

Zajmuję się tworzeniem aplikacji mobilnej korzystającej ze skanera kodów kreskowych (Motorola MC75A). Zainstalowałem EMDK dla .NET v2.5.Nie można użyć EMDK dla .NET

Używam biblioteki Symbol.dll i Symbol.barcode2.dll do korzystania ze skanera kodów kreskowych. Ale dostaję błędy, gdy uruchomię kod na urządzeniu emulatora z Windows Mobile 6.5.

Kod:

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

Wyjątek:

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

muszę kolejny emulator czy coś innego?

Dzięki

Odpowiedz

10

AFAIK, SCNAPI32.dll jest rodowitym dll, która jest obecna na urządzeniach Motoroli (ładowanych z ROM) i nazywanych przez symbol DLL. Emulator nie jest urządzeniem typu motorola, więc nie ma zainstalowanych tych bibliotek. Jeśli urządzenie ma kabel USB, możesz go podłączyć za pomocą ActiveSync (lub centrum mobilności Windows) i debugować na samym urządzeniu; Nie wiem, czy motorola ma jakieś emulatory.

Jeśli naprawdę potrzebujesz przetestować aplikację przy użyciu domyślnego emulatora, możesz utworzyć pusty symbol Symbol.dll i Symbol.barcode2.dll, ponownie utworzyć ten sam interfejs, co Symbol i debugować za pomocą tych. Zamiast aktywować skaner, można było wtedy Console.WriteLine("Scanner activated"); itd.

+0

Dzięki za szybką odpowiedź na – eicruzado

3

Wystąpił podobny problem z symbolem & Symbol.Audio. Moja wiadomość o błędzie

Nie można odnaleźć PInvoke DLL AudioAPI32.dll '

Okazuje się, że są symulowane tryby dla niektórych „urządzeń” symbol. Biblioteki symboli Motorola wykrywają te tryby za pomocą rejestru urządzenia lub emulatora. Aby uzyskać dostęp do rejestru Emulator, można użyć Visual Studio Remote Tools \ Remote Registry Editor

Następnie wystarczy podłączyć do emulatora (Windows Mobile 6.5.3 Profesjonalne Emulator) i upewnij się, że nie ma Symulacja wartość jako " nigdy”w

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Symbol]

Jeśli nie ma wartości Symulacja string, domyślnie jest prawdopodobnie Auto - w takim przypadku emulator pyta o tryb, który chcesz posługiwać się. Możesz także spróbować dodać symulację jako "Zawsze".

Można też dodać sprawdza, czy urządzenia są dostępne, na przykład:

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

+0

dodaję wartość symulacji, ale nadal pojawia się błąd. Domyślam się, że jedynym sposobem na przetestowanie kodu jest debugowanie za pomocą urządzenia. Tnanks za odpowiedź. – eicruzado

+0

Ustawienie wartości symulacji na "Zawsze" działało dla mnie, chociaż teraz nieustannie wywołuje zdarzenia odczytu ... – Geoff

Powiązane problemy