я испытываю некоторые трудности в составлении этого урока из MSDN:http://msdn.microsoft.com/en-us/library/windows/desktop/ee207405(v=vs.85).aspx . Как упомянуто в заголовке, я получаю Нет такого файла или каталога во время компиляции, даже после компоновки winbio.lib, сгенерированного с помощью команд dumpbin и LIB в VS 2008, и это код:
#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;
}
использование команд dumpbin и LIB в VS 2008
Конечно, вы используете старую версию Windows SDK. VS2008 поставляется с версией 6.0. Этот API, однако, стал доступен только с Windows 7, выпущенной в 2009 году. Вам нужно обновить SDK, я рекомендую версия 7.1
Попробуйте загрузить Windows Kits (8.0 или 8.1) — по крайней мере, там у меня Winbio.h. Он устанавливается вместе с Visual Studio 2012, но может быть загружен отдельно.