根据MSDN,GetObject失败时返回0。它没有说明如何获得有关失败的其他信息。
我已尝试GetLastError,但看起来它并未反映之前的失败,而是返回0(即ERROR_SUCCESS
)。
如果GetObject
失败,我如何得到失败原因?
答案 0 :(得分:2)
根据文档GetObject不会设置上一个错误代码。这也不是必需的,因为您可以轻松推断出哪个参数是错误的:
如果对GetObject
的调用未通过 lpvObject 的NULL
,则您知道句柄错误(对象的句柄不再存在,或者是不支持的类型)。
如果前一个调用成功,并且使用相同GDI对象句柄的后续调用失败,则表示您正在传递一个不合适的缓冲区(太小,或者没有在4字节边界上正确对齐)。