根据 MSDN,GetObject失败时返回 0。它没有说明如何获取有关失败的其他信息。
我试过了 GetLastError ,但看起来它并没有反射(reflect)之前的失败,而是返回 0(即 ERROR_SUCCESS
)。
GetObject
失败时如何获取失败原因?
最佳答案
根据文档GetObject不会设置最后的错误代码。这也不是必需的,因为您可以轻松推断出哪个参数是错误的:
如果对 GetObject
的调用未能为 lpvObject 传递 NULL
,您就知道句柄是错误的(一个对象的句柄没有不再存在,或者是不受支持的类型)。
如果前一个调用成功,而使用相同 GDI 对象句柄的后续调用失败,则您知道您正在传递一个不合适的缓冲区(太小,或者没有在 4 字节边界上正确对齐)。
关于c++ - 如何找出GetObject失败的原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37131938/