c++ - 如何找出GetObject失败的原因?

标签 c++ winapi

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

我试过了 GetLastError ,但看起来它并没有反射(reflect)之前的失败,而是返回 0(即 ERROR_SUCCESS)。

GetObject 失败时如何获取失败原因?

最佳答案

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

如果对 GetObject 的调用未能为 lpvObject 传递 NULL,您就知道句柄是错误的(一个对象的句柄没有不再存在,或者是不受支持的类型)。

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

关于c++ - 如何找出GetObject失败的原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37131938/

相关文章:

c++ - 区分带小数位的数字(double 类型)和不带小数位的数字 - C++

将 Win16 C 代码转换为 Win32

c++ - 当计算机不在域中时,LogonUser() 不对无效域的用户进行身份验证

c++ - 线程函数无法从堆上分配的缓冲区中读取字符

c++ - 将 Integer 转换回 SecByteBlock?

c++ - c++ 一段代码中的二进制搜索似乎有问题

c++ - 调用 CreateWindow() func WinApi 时出现错误 1813

c++ - 未找到 ColorBlend

c++ - 使用结构 vector 时输出错误

c++ - 重载不适用于 <<