创建 WIA 设备管理器会出现编译时错误
Creating a WIA Device Manager gives a compile time error
我正在关注来自 msdn https://msdn.microsoft.com/en-us/library/ms629848(v=vs.85).aspx:
的示例
HRESULT CreateWiaDeviceManager(IWiaDevMgr2 **ppWiaDevMgr)
{
CoInitialize(NULL);
// Validate arguments
if (NULL == ppWiaDevMgr)
return E_INVALIDARG;
// Initialize out variables
*ppWiaDevMgr = NULL;
// Create an instance of the device manager
HRESULT hr = CoCreateInstance( CLSID_WiaDevMgr2, NULL, CLSCTX_LOCAL_SERVER, IID_IWiaDevMgr2, (void**)ppWiaDevMgr );
// Return the result of creating the device manager
return hr;
}
但是在编译时我得到了这个错误:
错误 389 错误 C2440:'type cast':无法从 'const CLSID' 转换为 'const IID *const '
错误 392 错误 C2440:'type cast':无法从 'const IID' 转换为 'const IID *const '
关于 CoCreateInstance 的参数。
我没有对示例代码进行任何有意义的更改...
任何人都可以建议我为什么得到这个吗?
试试看
HRESULT hr = CoCreateInstance( &CLSID_WiaDevMgr2, NULL, &CLSCTX_LOCAL_SERVER, &IID_IWiaDevMgr2, (void**)ppWiaDevMgr );
在 C++ 中,代码构建为发布在 MSVC2013 上,包括:
#include <guiddef.h>
#include <afxwin.h>
#include <Wia.h>
#include <tchar.h>
我正在关注来自 msdn https://msdn.microsoft.com/en-us/library/ms629848(v=vs.85).aspx:
的示例HRESULT CreateWiaDeviceManager(IWiaDevMgr2 **ppWiaDevMgr)
{
CoInitialize(NULL);
// Validate arguments
if (NULL == ppWiaDevMgr)
return E_INVALIDARG;
// Initialize out variables
*ppWiaDevMgr = NULL;
// Create an instance of the device manager
HRESULT hr = CoCreateInstance( CLSID_WiaDevMgr2, NULL, CLSCTX_LOCAL_SERVER, IID_IWiaDevMgr2, (void**)ppWiaDevMgr );
// Return the result of creating the device manager
return hr;
}
但是在编译时我得到了这个错误:
错误 389 错误 C2440:'type cast':无法从 'const CLSID' 转换为 'const IID *const '
错误 392 错误 C2440:'type cast':无法从 'const IID' 转换为 'const IID *const '
关于 CoCreateInstance 的参数。
我没有对示例代码进行任何有意义的更改... 任何人都可以建议我为什么得到这个吗?
试试看
HRESULT hr = CoCreateInstance( &CLSID_WiaDevMgr2, NULL, &CLSCTX_LOCAL_SERVER, &IID_IWiaDevMgr2, (void**)ppWiaDevMgr );
在 C++ 中,代码构建为发布在 MSVC2013 上,包括:
#include <guiddef.h>
#include <afxwin.h>
#include <Wia.h>
#include <tchar.h>