2013-06-06 25 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'' –