2011-10-14 26 views
6

Tôi đang phát triển một ứng dụng di động sử dụng máy quét mã vạch (Motorola MC75A). Tôi đã cài đặt EMDK cho .NET v2.5.Không thể sử dụng EMDK cho .NET

Tôi sử dụng thư viện Symbol.dll và Symbol.barcode2.dll để sử dụng máy quét mã vạch. Nhưng tôi gặp lỗi khi tôi chạy mã trên thiết bị giả lập với Windows Mobile 6.5.

Code:

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

Ngoại lệ:

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

Tôi cần một giả lập hay cái gì khác?

Cảm ơn

Trả lời

10

AFAIK, SCNAPI32.dll là một dll bản địa, trong đó có mặt trên các thiết bị motorola (tải từ ROM) và được gọi bằng các dll của Symbol. Trình giả lập không phải là thiết bị motorola nên nó không cài đặt các thư viện này. Nếu thiết bị có cáp USB, bạn có thể kết nối nó bằng ActiveSync (hoặc cửa sổ di động trung tâm) và gỡ lỗi trên thiết bị; Tôi không biết nếu motorola có bất kỳ giả lập.

Nếu bạn thực sự cần thử nghiệm ứng dụng bằng trình mô phỏng mặc định, bạn có thể tạo một Symbol.dll trống và Symbol.barcode2.dll, tạo lại giao diện giống như Symbol và debug bằng cách sử dụng chúng. Thay vì kích hoạt máy quét, bạn có thể Console.WriteLine("Scanner activated"); v.v.

+0

Cảm ơn câu trả lời nhanh chóng – eicruzado

3

Tôi gặp sự cố tương tự với Symbol & Symbol.Audio. thông báo lỗi của tôi là

Không thể tìm thấy PInvoke DLL 'AudioAPI32.dll'

Hóa ra phương thức có được mô phỏng cho một số Symbol "thiết bị". Thư viện Biểu tượng Motorola phát hiện các chế độ đó bằng cách sử dụng đăng ký của thiết bị hoặc trình mô phỏng. Để truy cập vào registry Emulator, bạn có thể sử dụng Visual Studio từ xa Tools \ từ xa Registry Editor

Sau đó chỉ cần kết nối với giả lập của bạn (Windows Mobile 6.5.3 Professional Emulator), và chắc chắn rằng không có mô phỏng giá trị như ' không bao giờ' trong

[HKEY_LOCAL_MACHINE \ Software \ Symbol]

Nếu không có giá trị mô phỏng-string, mặc định là lẽ Auto - trong trường hợp này giả lập hỏi chế độ mà bạn muốn sử dụng. Bạn cũng có thể thử thêm Mô phỏng là 'Luôn luôn'.

Bạn cũng có thể thêm kiểm tra xem nếu thiết bị có sẵn, ví dụ:

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

+0

tôi thêm các giá trị mô phỏng nhưng tôi vẫn nhận được lỗi. Tôi đoán cách duy nhất để kiểm tra mã là gỡ lỗi với thiết bị. Tnanks cho câu trả lời. – eicruzado

+0

Đặt giá trị mô phỏng thành 'Luôn luôn' hoạt động đối với tôi, mặc dù hiện tại nó liên tục kích hoạt các sự kiện đã đọc ... – Geoff

Các vấn đề liên quan