2013-06-06 24 views
0

我在微軟的「WIA教程」頁面看到了這種編碼方式,但是vC++不讓我編譯它!一直出現一些錯誤!在vC++中通過WIA掃描頁面出錯

#include "stdafx.h" 
#include <Strsafe.h> 
#include <Wia.h> 
#include <WinError.h> 

bool CreateWiaDeviceManager(IWiaDevMgr2 **ppWiaDevMgr){ 
// 
// Validate arguments 
// 
if (NULL == ppWiaDevMgr) 
{ 
    return E_INVALIDARG; 
} 
// 
// Initialize out variables 
// 
*ppWiaDevMgr = NULL; 

// 
// Create an instance of the device manager 
// 


//Vista or later: 
HRESULT hr = CoCreateInstance(CLSID_WiaDevMgr2, NULL, CLSCTX_LOCAL_SERVER, IID_IWiaDevMgr2, (void**)ppWiaDevMgr); 

// 
// Return the result of creating the device manager 
// 
return SUCCEEDED(hr); 
} 

有錯誤:

1> WIAScanner.cpp(11):錯誤C2065:IWiaDevMgr2':未聲明的標識符 1> WIAScanner.cpp(11):錯誤C2065:ppWiaDevMgr':未聲明的標識符 1> WIAScanner.cpp(11):錯誤C2448:'CreateWiaDeviceManager':函數式初始化器似乎是函數定義

感謝您的關注。

回答

0

IWiaDevMgr2僅在Windows Vista或更高版本中可用,因此您需要正確定位您的項目:_WIN32_WINNT需要定義爲0x0600或更高。

+0

不幸的是,它沒有奏效。 –

+0

你需要做的正確,它會工作。您必須通過項目設置或通過「stdafx.h」儘早定義'_WIN32_WINNT',具體取決於您的項目佈局。 –

+0

通過項目設置將'_WIN32_WINNT_'設置爲0x0600之後,我得到了太多的錯誤:'__out_z LPSTR lpString1,//棄用:註釋與其得到的一樣好'或'1> C:\ Program Files(x86) Microsoft SDK \ Windows \ v7.0A \ include \ winbase.h(6141):錯誤C2226:語法錯誤:意外類型'LPWSTR'' –