2016-08-29 13 views
0

Windows Mobile 5가 설치된 intermec CN3 장치를 사용하고 barcodereader 및 이미 저를 사용하려고하면 Im이 실패합니다.인터넷에 연결하면 CN3 바코드 판독기 및 이미 저는 실패합니다

인터넷에 연결되어있을 때 itcscan.dll 및 imager.dll 파일을 찾을 수 없습니다. 인터넷에 연결되어 있지 않아도 완벽하게 작동합니다.

barcodereader에 대해 다음과 같은 오류가 나타납니다. "PInvoke DLL 'ITCScan.DLL'을 찾지 못했습니다." 그리고 이것은 Imager에서 얻는 에러입니다 : "Imager를 열 수 없습니다".

pinvoke 오류를 찾을 수없는 웹에 대한 많은 게시물이 있지만 인터넷에 연결되는 것과 관련된 특정 항목은 없으며 해당 게시물의 사람들은 오프라인 일 때도 오류가있는 것으로 보입니다.

그들은 새로운 문 실패 :

글로벌 VAR : Intermec.DataCollection.BarcodeReader barRead;

if (barRead == null) 
{ 
    barRead = new Intermec.DataCollection.BarcodeReader(); 

이미 저

img = new Intermec.DataCollection.Imager(PictureImager, Imager.PictureResolutionSize.Sixteenth); 

는하지만, 나중에 설정되는 몇 가지 설정이 있습니다 자신의 글로벌 VAR와 유사하다 인터넷에 연결되어있는 동안 이러한 진술을 전달하지 않습니다.

+0

BarcodeReader의 초기화가 포함 된 클래스의 코드를 추가하고 예외의 정확한 세부 정보를 추가 할 수 있습니까? –

+0

BarcodeReader 및 Imager 객체를 인터넷 연결없이 초기화 할 수 있지만 인터넷에 연결하지 않으면 초기화 할 수 없습니다. 장치의 ITCScan.dll은 어디에 있고 DCNet.cab의 버전은 설치 했습니까? – josef

+0

@josef 장치에서 dll은 windows 폴더에 있습니다. 필자는 그곳에서 앱 폴더로 복사를 시도했지만 실패했습니다. 나는 CE5를 설치했다. – Ferdie

답변

1

결국 메모리 문제가 발생했습니다. 인터넷에 연결되어있는 동안 장치는 조금 더 많은 메모리를 사용하고 있었고 이것은 가장자리 위로 기울어 진 것처럼 보였습니다.

처음부터 문제가되는 것은 장치 자체의 SQL Server와의 연결이었습니다. 마지막 sqlconnection은 gc.collect를 닫아 강제로 메모리를 남기지 않는 것으로 보입니다. 이상한 해결 방법은 간단히 닫은 다음 다시 열어 마지막으로 다시 닫아서 마지막 연결을 실제로 메모리에서 작게 만드는 것입니다.

이것은 .Net 프레임 워크 또는 sqlserver와 관련된 버그입니다.