0

msdn からこのチュートリアルをコンパイルする際に、いくつかの問題が発生しています: http://msdn.microsoft.com/en-us/library/windows/desktop/ee207405(v=vs.85).aspx。タイトルで述べたように、VS 2008 で dumpbin および LIB コマンドを使用して生成された winbio.lib をリンクした後でも、コンパイル時に No such file or directory を取得しています。これがコードです。

#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;
}
4

2 に答える 2

2

Windows キット (8.0 または 8.1) をダウンロードしてみてください - 少なくともそこに Winbio.h があります。Visual Studio 2012 と共にインストールされますが、個別にダウンロードできます。

于 2013-07-21T16:47:16.107 に答える
2

VS 2008 で dumpbin および LIB コマンドを使用する

古いバージョンの Windows SDK を使用していることは間違いありません。VS2008 はバージョン 6.0 で出荷されました。ただし、この API は、2009 年にリリースされた Windows 7 でのみ使用できるようになりました。SDK を更新する必要があります。バージョン 7.1をお勧めします。

于 2013-07-21T16:47:33.357 に答える