在我的程序的第一步中调用 LoadImage()
返回 NULL。就在它之后,GetLastError()
被调用,并且它出人意料地返回了 0。
我想知道为什么 LoadImage()
会失败,因为 GetLastError()
清楚地表明在失败的函数之后没有设置错误代码。
这是代码片段:
if ( (hbitmap = (HBITMAP) LoadImage(hThisInstance, MAKEINTRESOURCE(MY_BITMAP),
IMAGE_BITMAP, 0, 0,
LR_CREATEDIBSECTION)) == NULL)
printf("Last error: %d\n", GetLastError());
使用 HBITMAP hbitmap、HINSTANCE hThisInstance(WinMain 的参数)和 MY_BITMAP 一个有效的位图资源。
最佳答案
显然,当文件格式有问题时,LoadImage
返回 NULL
并且不会设置任何错误。
可以找到我试图加载的位图拷贝 here .我使用 GIMP 创建它,它在当前版本中有很多错误。
解决方案是在“画图”中打开文件并再次保存。现在 LoadImage
加载图像,没有任何提示。
关于c++ - Windows GDI 上下文 - LoadImage 和 GetLastError(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7947560/