0

我该如何解释HRESULT -2003292276

这是通过调用返回的IWICFactory factory->CreateBitmapFromMemory()

hr = m_factory->CreateBitmapFromMemory(
  m_format.imageWidthPels, 
  m_format.imageHeightPels, 
  GUID_WICPixelFormat32bppBGR, 
  m_format.strideSize,
  cbBitmapData,
  data,
  &pBitmap);
4

3 回答 3

1

来自维基百科

winerror.h文件定义了一些通用的 HRESULT 值。硬编码的 HRESULT 值有时会在给定子系统的关联头文件(.h 文件)中编码。这些值也在 Microsoft Windows 平台 SDK 或 DDK 的相应标头 (.h) 文件中定义。

要检查返回 HRESULT 的调用是否成功,请确保 S 字段为 0(即数字为非负数)或使用 FAILED() 宏。要获取 HRESULT 的代码部分,请使用 HRESULT_CODE() 宏。您还可以使用名为 ERR.EXE 的工具获取该值并将其转换为相应的错误字符串。另一个名为 ERRLOOK.EXE 的工具也可用于显示与给定 HRESULT 值关联的错误字符串。ERRLOOK.EXE 可以在 Visual Studio 命令提示符内运行。

Windows 本机SetErrorInfoGetErrorInfoAPI 用于将 HRESULT 返回代码与相应的IErrorInfo对象相关联。

FormatMessage API 函数可用于将一些非IErrorInfoHRESULT 转换为用户可读的字符串。

于 2013-07-08T20:42:49.440 回答
1

编解码器错误代码

本文档包含 Windows 映像组件 (WIC) 定义的错误代码列表。

| Error Code                      | Error Value |
|---------------------------------|-------------|
| WINCODEC_ERR_INSUFFICIENTBUFFER | 0x88982f8C  |

您正在创建一个太大的图像。

于 2015-05-05T21:11:41.440 回答
0

在网络上搜索 HRESULT 可能会很棘手,因为您经常需要将大的负数转换为十六进制并进行搜索(大概这就是 Ian 在他的正确答案中所做的)。还有像ERRLOOK.exeTed 描述的命令行工具(这是更好的命令行选项之一),可以将数字转换为定义或错误描述。

但是我们发现 Web 浏览器有时比 cmd 提示符更方便,因此我们创建了http://errorco.de,其中包含许多错误消息,您可以通过手头的任何数字来搜索。

例如,将您-2003292276带到http://errorco.de会给您:

This errorco.de is a pseudonym for winerror.h 0x88982F8C.
See that errorco.de for possible comments or remarks.

winerror.h -2003292276
#define WINCODEC_ERR_INSUFFICIENTBUFFER
The buffer allocated is insufficient.

Ian 和 Ted 在一页上提到的所有信息(必要时易于与他人分享)。也许你会发现它很有用。

于 2018-12-21T13:19:29.547 回答