2013-07-21 5 views
0

Я испытываю некоторый dificulty в компиляции этого учебника из msdn: http://msdn.microsoft.com/en-us/library/windows/desktop/ee207405(v=vs.85).aspx. Как было упомянуто в названии, я не хочу получать Нет такого файла или каталога во время компиляции, даже после того, как связь winbio.lib генерируется с использованием DUMPBIN и команды LIB в VS 2008, и это код:Winbio.h Нет такой ошибки файла или каталога

#include <iostream> 
#include <Windows.h> 
#include <Stdio.h> 
#include <Conio.h> 
#include <Winbio.h> 

HRESULT CaptureSample(); 

int main(int argc, char** argv) { 
HRESULT CaptureSample(); 
return 0; 
} 
    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. 
hr = WinBioOpenSession( 
     WINBIO_TYPE_FINGERPRINT, // Service provider 
     WINBIO_POOL_SYSTEM,   // Pool type 
     WINBIO_FLAG_RAW,   // Access: Capture raw data 
     NULL,      // Array of biometric unit IDs 
     0,       // Count of biometric unit IDs 
     WINBIO_DB_DEFAULT,   // Default database 
     &sessionHandle    // [out] Session handle 
     ); 
if (FAILED(hr)) 
{ 
    wprintf_s(L"\n WinBioOpenSession failed. hr = 0x%x\n", hr); 
    goto e_Exit; 
} 

// Capture a biometric sample. 
wprintf_s(L"\n Calling WinBioCaptureSample - Swipe sensor...\n"); 
hr = WinBioCaptureSample(
     sessionHandle, 
     WINBIO_NO_PURPOSE_AVAILABLE, 
     WINBIO_DATA_FLAG_RAW, 
     &unitId, 
     &sample, 
     &sampleSize, 
     &rejectDetail 
     ); 
if (FAILED(hr)) 
{ 
    if (hr == WINBIO_E_BAD_CAPTURE) 
    { 
     wprintf_s(L"\n Bad capture; reason: %d\n", rejectDetail); 
    } 
    else 
    { 
     wprintf_s(L"\n WinBioCaptureSample failed. hr = 0x%x\n", hr); 
    } 
    goto e_Exit; 
} 

wprintf_s(L"\n Swipe processed - Unit ID: %d\n", unitId); 
wprintf_s(L"\n Captured %d bytes.\n", sampleSize); 
e_Exit: 
if (sample != NULL) 
{ 
    WinBioFree(sample); 
    sample = NULL; 
} 

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

wprintf_s(L"\n Press any key to exit..."); 
_getch(); 

return hr; 
} 

ответ

2

с использованием DUMPBIN и LIB команды в VS 2008

Конечно, вы используете старую версию Windows SDK. VS2008 поставляется с версией 6.0. Этот api, однако, стал доступен только в Windows 7, выпущенном в 2009 году. Вам нужно будет обновить свой SDK, я рекомендую version 7.1

+0

обновление до 7.1 dud трюк, но теперь я получаю ошибки, такие как WINBIO_SESSION_HANDLE sessionHandle, не объявленные в этой области, и многие другие похожи, почему? –

+1

http://msdn.microsoft.com/en-us/library/6sehtctf.aspx –

+0

Tnx, он работает! –

2

Попробуйте загрузите Windows Kits (8.0 или 8.1) - по крайней мере, у меня есть Winbio.h. Он установлен с Visual Studio 2012, но может быть загружен отдельно.

+0

Winbio.h и Winbio.lib доступны в версии 7.0 и новее. –

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