Windows GDI Context- LoadImage and GetLastError()
Windows GDI Context- LoadImage and GetLastError()
在程序的第一步中调用LoadImage()
返回NULL。就在它之后,调用GetLastError()
,它出人意料地返回0。我想知道为什么LoadImage()
失败,因为GetLastError()
清楚地显示,失败的功能后没有设置错误代码。这是一段代码:
if ( (hbitmap = (HBITMAP) LoadImage(hThisInstance, MAKEINTRESOURCE(MY_BITMAP),
IMAGE_BITMAP, 0, 0,
LR_CREATEDIBSECTION)) == NULL)
printf("Last error: %dn", GetLastError());
与HBITMAP HBITMAP, HINSTANCE hThisInstance (WinMain的参数),和MY_BITMAP一个有效的位图资源。
显然,当文件格式有问题时,LoadImage
返回NULL
并且不设置任何错误。
我试图加载的位图的副本可以在这里找到。我使用GIMP创建了它,而GIMP在当前版本中有很多bug。
解决方案是在Paint中打开文件并再次保存。现在LoadImage
加载图像没有任何抱怨
我在最新版本的GIMP中发现了完全相同的行为。当你从Gimp导出时,选择兼容性选项[+]按钮并勾选"不写色彩空间信息"复选框,位图将使用LoadImage加载。编辑:我现在看到了之前的评论,否则我可能不会费心写!
相关文章:
- C++核心准则 C35 对于接口类"A base class destructor should be either public and virtual, or protected and nonv
- 为什么C++逐位AND运算符在不同大小的操作数中表现为这样
- 为什么 Clang 不允许"and"作为函数名称?
- 位阵列上的快速AND运算
- 是否可以在 C++03 中定义'move-and-swap idiom'等效项
- BoostPython and CMake
- OpenSSL BIO and SSL_read
- 根据 GetLastError 直接写入磁盘会导致错误代码 5
- Gurobi GRBModel and GRBmodel in C++
- std::visit and std::variant usage
- SHBrowseForFolder with BIF_BROWSEFORCOMPUTER and SHGetPathFr
- Directx12 and keystrokes
- different between int **arr =new int [ n]; and int a[i][j]?
- C++ getenv and setenv
- Inference pytorch C++ with alexnet and cv::imread image
- Visual Studio 2019 C++ and std::filesystem
- 为什么我的 LogError 函数会重置 GetLastError?
- 保证逻辑 AND 表达式中的函数调用
- python ctypes and C++ pointers
- Windows GDI Context- LoadImage and GetLastError()