2016-10-31 8 views
0

Я новичок C++ и вам необходимо сохранить изображение captured by Biometric fingerprint sensor в качестве файла изображения BMP. Я обнаружил, что this примером может быть подходит для моих требований, но пока я бегу приложение (как администратор), я получил сообщение об ошибке при попытке получить указатель &sample говорит 'Unable to read from memory'WinBio Save Capture Sample as Image - Невозможно прочитать из памяти

HRESULT CaptureSample() 
    { 
     HRESULT hr = S_OK; 
     WINBIO_SESSION_HANDLE sessionHandle = NULL; 
     WINBIO_UNIT_ID unitId = 0; 
     WINBIO_REJECT_DETAIL rejectDetail = 0; 
     PWINBIO_BIR sample = NULL; 
     SIZE_T sampleSize = 0; 
     // Connect to the system pool & opening session code done successfully. 
     // Capture a biometric sample. 
     std::cout << "Calling WinBioCaptureSample - Swipe sensor...\n"; 

     hr = WinBioCaptureSample(
     sessionHandle, 
     WINBIO_NO_PURPOSE_AVAILABLE, 
     WINBIO_DATA_FLAG_RAW, 
     &unitId, 
     &sample, // Here Application crashes and error is 'Unable to read from memory' 
     &sampleSize, 
     &rejectDetail 
     ); 

     std::cout << "Swipe processed - Unit ID: " << unitId << "\n"; 


     if(FAILED(hr)) 
     { 
     if(hr == WINBIO_E_BAD_CAPTURE) 
      std:: cout << "Bad capture; reason: " << rejectDetail << "\n"; 
     else 
      std::cout << "WinBioCaptureSample failed.hr = 0x" << std::hex << hr << std::dec << "\n"; 

     if(sample != NULL) 
     { 
      WinBioFree(sample); 
      sample = NULL; 
     } 

     if(sessionHandle != NULL) 
     { 
      WinBioCloseSession(sessionHandle); 
      sessionHandle = NULL; 
     } 

     return hr; 
     } 
    } 
+0

Вы не открыли сеанс с помощью WinBioOpenSession – alangab

+0

Он уже открыт, но только для того, чтобы сделать код короче, я его не добавил. –

+0

Я использую тот же код в этом примере: https://github.com/djbozkosz/Windows-Biometric-Framework-FingerPrint-Example –

ответ

0

код кажется отлично в git-репо, поэтому, если вы ничего не изменили, тогда я бы предпочел: a) что-то уже использует устройство (это было так, когда у нас была аналогичная проблема) b) ошибка драйвера или подключения

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

  • Нет связанных вопросов^_^