Cpp LoadImage问题

时间:2019-03-08 10:00:36

标签: c++ bitmap drawing

在过去的几天里,我一直在尝试将一个基本的国际象棋项目放到我的github页面上。但是,我遇到了一些过时的WinApi位图加载和绘制问题。例如,当我尝试从与项目文件相同的目录中加载位图时,

  

drawingClass.Piece =(HBITMAP)LoadImage(NULL,“ Black_Pawn.bmp”,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);

LoadImage函数返回null,这使我无法绘制位图。我不确定投放时是否有问题,或者我做错了什么。我通常不会遇到此类问题,因此,此时进入Stackoverflow实际上是我的最后选择。

哦,我知道WinApi图形库已经过时了,不是吗,不,我不打算外包像SFML这样的第三方库。此外,这些api必须完成与我在较低级别上尝试做的事情类似的事情。

Debugger clearly shows the problem here.

响应答案(因为堆栈溢出不喜欢超过400个左右字符的注释):

尝试了绝对路径。没运气。就“最小,完整和可验证的示例”而言,所有必要的组件均已存在。如果您想自己重现该问题,只需运行提供的代码段即可。我不确定这到底为什么不按应有的方式起作用,这一直困扰着我。以下已通过测试。

请注意,强制转换是必需的,因为LoadImage默认提供一个HANDLE。

绝对路径:

  

drawingClass.Piece =(HBITMAP)LoadImage(NULL,_T(“ C:\ Users \ 用户名 \ source \ repos \ 用户名 \ Chess \ Chess \ Chess \ Black_Pawn.bmp“),IMAGE_BITMAP,0、0,LR_LOADFROMFILE);

相对路径:

  

drawingClass.Piece =(HBITMAP)LoadImage(NULL,_T(“ Black_Pawn.bmp”),IMAGE_BITMAP,0,0,LR_LOADFROMFILE);

LoadImageA:

  

drawingClass.Piece =(HBITMAP)LoadImageA(hinst_current,“ Black_Pawn.bmp”,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);

LoadImageW:

  

drawingClass.Piece =(HBITMAP)LoadImageW(hinst_current,L“ Black_Pawn.bmp”,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);

问题仍然存在。

0 个答案:

没有答案