Winbio.h没有这样的文件或目录错误

Winbio.h No such file or directory error

本文关键字:文件 错误 Winbio      更新时间:2023-10-16

我在从msdn编译本教程时遇到了一些困难:http://msdn.microsoft.com/en-us/library/windows/desktop/ee207405(v=vs.85).aspx。正如标题中所提到的,即使在VS2008中链接了使用dumpbin和lib命令生成的winbio.lib之后,我在编译时也会得到No这样的文件或目录,这是代码:

#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%xn", 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: %dn", rejectDetail);
    }
    else
    {
        wprintf_s(L"n WinBioCaptureSample failed. hr = 0x%xn", hr);
    }
    goto e_Exit;
}
wprintf_s(L"n Swipe processed - Unit ID: %dn", 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;
}

在VS2008中使用dumpbin和LIB命令

当然,您使用的是旧版本的Windows SDK。VS2008随6.0版一起提供。然而,这个api只在2009年发布的Windows7中可用。您需要更新您的SDK,我建议使用7.1版

尝试下载Windows工具包(8.0或8.1)-至少我有Winbio.h。它与Visual Studio 2012一起安装,但可以单独下载。