如何找出GetObject失败的原因?

时间:2016-05-10 07:29:16

标签: c++ winapi

根据MSDN,GetObject失败时返回0。它没有说明如何获得有关失败的其他信息。

我已尝试GetLastError,但看起来它并未反映之前的失败,而是返回0(即ERROR_SUCCESS)。

如果GetObject失败,我如何得到失败原因?

1 个答案:

答案 0 :(得分:2)

根据文档GetObject不会设置上一个错误代码。这也不是必需的,因为您可以轻松推断出哪个参数是错误的:

如果对GetObject的调用未通过 lpvObject NULL,则您知道句柄错误(对象的句柄不再存在,或者是不支持的类型)。

如果前一个调用成功,并且使用相同GDI对象句柄的后续调用失败,则表示您正在传递一个不合适的缓冲区(太小,或者没有在4字节边界上正确对齐)。