2011-10-14 4 views
6

바코드 스캐너 (Motorola MC75A)를 사용하는 모바일 응용 프로그램을 개발하고 있습니다. EMDK for .NET v2.5를 설치했습니다.EMDK for .NET을 사용할 수 없습니다.

바코드 스캐너 사용시 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'."} 

내가 다른 에뮬레이터 또는 뭔가 다른 필요합니까?

감사

답변

10

AFAIK는 SCNAPI32.dll는 기호 DLL의에 의해 (ROM에서로드) 및 전화 모토로라 장치에 존재하는 기본 DLL입니다. 에뮬레이터는 모토로라 장치가 아니므로이 라이브러리가 설치되어 있지 않습니다. 장치에 USB 케이블이 있으면 ActiveSync (또는 Windows 모바일 센터)를 사용하여 장치를 연결하고 장치 자체에서 디버그 할 수 있습니다. 모토로라 에뮬레이터가 있는지 모릅니다.

기본 에뮬레이터를 사용하여 응용 프로그램을 테스트해야하는 경우 비어있는 Symbol.dll 및 Symbol.barcode2.dll을 만들고 Symbol과 동일한 인터페이스를 다시 만들고이를 사용하여 디버그 할 수 있습니다. 스캐너를 활성화하는 대신 Console.WriteLine("Scanner activated"); 등을 사용할 수 있습니다.

+0

감사합니다 빠른 답변을 – eicruzado

3

Symbol & Symbol.Audio와 비슷한 문제가 발생했습니다. 내 오류 메시지가 PInvoke를 DLL 'AudioAPI32.dll'

그것은 몇 가지 기호 "장치"에 대한이 시뮬레이션 모드를 밝혀 찾을 수 없습니다

이었다. Motorola Symbol 라이브러리는 장치 또는 에뮬레이터의 레지스트리를 사용하여 해당 모드를 감지합니다. 에뮬레이터 레지스트리에 액세스하려면 원격 레지스트리 편집기 \ Visual Studio를 원격 도구를 사용할 수 있습니다

그런 다음 당신의 에뮬레이터 (윈도우 모바일 6.5.3 전문 에뮬레이터)에 연결하고 더 시뮬레이션 값이 '로 없습니다 확인 당신이 원하는 모드 에뮬레이터가 요청하는 경우 - 절대로 '

[HKEY_LOCAL_MACHINE \ SOFTWARE \ 기호]에

더 시뮬레이션 - 문자열 값이없는 경우, 기본은 아마 자동 없다 용도. 시뮬레이션을 '항상'으로 추가 할 수도 있습니다.

또한 예를 들어, 장치를 사용할 수 있는지 확인하기 위해 검사를 추가 할 수 있습니다

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

+0

을 위해 내가 시뮬레이션 값을 추가하지만 난 여전히 오류가 발생합니다. 코드를 테스트하는 독특한 방법은 장치로 디버깅하는 것입니다. 대답은 Tanks. – eicruzado

+0

시뮬레이션 값을 'Always'로 설정하면 계속 읽기 작업을 계속할 수 있지만 ... – Geoff