2016-12-19 3 views
1

Я разрабатываю приложение для считывания отпечатков пальцев winform с использованием ZKFinger SDK.
Когда я бегу следующий код:'System.Runtime.InteropServices.COMException' в Interop.ZKFPEngXControl.dll (0x80040202)

ZKFPEngXClass obj = new ZKFPEngXClass(); 
obj.OnImageReceived += Obj_OnImageReceived; 
obj.OnCapture += Obj_OnCapture; 
obj.OnEnroll += Obj_OnEnroll; 
obj.OnFeatureInfo += Obj_OnFeatureInfo; 

тогда я получаю ошибку на

obj.OnCapture += Obj_OnCapture; 
obj.OnEnroll += Obj_OnEnroll; 
obj.OnFeatureInfo += Obj_OnFeatureInfo; 

но

obj.OnImageReceived += Obj_OnImageReceived; 

работает отлично.

Ошибка

Необработанное исключение типа '' System.Runtime.InteropServices.COMException произошло в Interop.ZKFPEngXControl.dll»
Дополнительная информация:. Исключение из HRESULT: 0x80040202

ответ

0

Вы должны зарегистрировать эти события только после подключения к устройству.

 if (objCZKEM.Connect_Net(IPAdd, Port)) 
     { 
      //65535 or 32767- depends 
      if (objCZKEM.RegEvent(1, 32767)) 
      { 
       // [ Register your events here ] 
       // [ Go through the _IZKEMEvents_Event class for a Ex); 
      } 
      return true; 
     } 
+0

Я использую obj.InitEngine() для инициализации устройства, и он возвращает «initialize successfull», и это устройство USB. –

+0

Хорошо, но чтобы использовать эти события, обязательно зарегистрируйте их. 65535 или 32767 с использованием метода RegEvent обычно работает для регистрации всех событий. – Ozesh

+0

В этом коде первое событие работает нормально, но затем дает ошибки. Например, если я комментирую «obj.OnImageReceived + = Obj_OnImageReceived;» затем "obj.OnCapture + = Obj_OnCapture;" отлично работает, но другие дают ошибку. Я не понимаю, что делать. –

0

Вместо использования

ZKFPEngXClass obj = new ZKFPEngXClass(); 

использования

ZKFPEngXControl.ZKFPEngX obj = new ZKFPEngXControl.ZKFPEngX(); 

Надеется, что это помогает.

Смежные вопросы