初学openGL 参考Nehe写的,没有使用glaux HBITMAP hbitmap;
BITMAP textureImage;
hbitmap=(HBITMAP)LoadImage(0,"texture.jpg",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
GetObject(hbitmap,sizeof(BITMAP),&textureImage);
glGenTextures(1,&texture[0]);
glBindTexture(GL_TEXTURE_2D,texture[0]);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_NEAREST); gluBuild2DMipmaps(GL_TEXTURE_2D,3,textureImage.bmWidth,textureImage.bmHeight,GL_RGB,GL_UNSIGNED_BYTE,&textureImage);
调试至此句产生如下错误报告:
unhandled exception at 0x68e27372 in cubic.exe: 0xC0000005: Access violation reading location 0x00143000. 请指点。不胜感激。
BITMAP textureImage;
hbitmap=(HBITMAP)LoadImage(0,"texture.jpg",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
GetObject(hbitmap,sizeof(BITMAP),&textureImage);
glGenTextures(1,&texture[0]);
glBindTexture(GL_TEXTURE_2D,texture[0]);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_NEAREST); gluBuild2DMipmaps(GL_TEXTURE_2D,3,textureImage.bmWidth,textureImage.bmHeight,GL_RGB,GL_UNSIGNED_BYTE,&textureImage);
调试至此句产生如下错误报告:
unhandled exception at 0x68e27372 in cubic.exe: 0xC0000005: Access violation reading location 0x00143000. 请指点。不胜感激。
应该是gluBuild2DMipmaps的参数问题;
不管如何,谢谢
是不是要把最后一个参数改成textureImage.bmBits
变成
Unhandled exception at 0x68e27372 in cubic.exe: 0xC0000005: Access violation reading location 0x00000000.
看了一下似乎hbitmap的句柄获得有问题,调试时显示unused,但地址确实被重新分配了一个
这段代码是在注册完窗口以后的,但不在过程函数里,会不会跟这个有关系