我正在尝试在Visual Studio 2010中运行OpenGL项目。所有错误都已修复,但是当我运行VS的app命令提示符窗口打开然后消失时,OpenGL窗口根本没有打开。我看不出结果。它给出了一些消息如下:
The thread 'Win32 Thread' (0x2170) has exited with code 0 (0x0).
The thread 'Win32 Thread' (0x161c) has exited with code 0 (0x0).
'Lab8.exe': Loaded 'C:\Windows\System32\BtMmHook.dll', Cannot find or open the PDB file
The thread 'Win32 Thread' (0x1ee4) has exited with code 1 (0x1).
The thread 'Win32 Thread' (0x211c) has exited with code 1 (0x1).
The program '[9260] Lab8.exe: Native' has exited with code 1 (0x1)
在我的程序中,以下两个功能正在运行。
AUX_RGBImageRec * LoadBMP(char * Filename)//加载位图图像 { FILE * File = NULL; //文件句柄
if (!Filename) // Make Sure A Filename Was Given
{
return NULL; // If Not Return NULL
}
//File=fopen(Filename,"r"); // Check To See If The File Exists
fopen_s(&File, Filename,"r");
if (File) // Does The File Exist?
{
fclose(File); // Close The Handle
return auxDIBImageLoad(Filename); // Load The Bitmap And Return A Pointer
}
return NULL; // If Load Failed Return NULL
// return auxDIBImageLoad(Filename);
}
int LoadGLTextures()//加载位图并转换为纹理 { //将状态设置为TRUE
int Status=FALSE; // Status Indicator
AUX_RGBImageRec *TextureImage[22]; // Create Storage Space For The Texture
memset(TextureImage,0,sizeof(void *)*22); // Set The Pointer To NULL
// Load The Bitmap, Check For Errors, If Bitmap's Not Found Quit
if ((TextureImage[0]=LoadBMP("Data/greywall.bmp")) //for wall inside the building
&& (TextureImage[1]=LoadBMP("Data/weirdbrick.bmp")) //for floor
&&(TextureImage[2]=LoadBMP("Data/sand.bmp")) //for land
&&(TextureImage[3]=LoadBMP("Data/Stars1.bmp")) //for sky
&&(TextureImage[4]=LoadBMP("Data/Stars.bmp")) //for sky
&&(TextureImage[5]=LoadBMP("Data/Font.bmp")) //for sky
&&(TextureImage[6]=LoadBMP("Data/Ceiling.bmp")) //for ceiling
&&(TextureImage[7]=LoadBMP("Data/fire1.bmp")) //for corridor when light on
&&(TextureImage[8]=LoadBMP("Data/nolightcorridor.bmp"))//for corridor when light off
&&(TextureImage[9]=LoadBMP("Data/moon.bmp")) //for moon
&&(TextureImage[10]=LoadBMP("Data/greywall1.bmp"))//for wall around the building
&&(TextureImage[11]=LoadBMP("Data/stone.bmp")) //for pole
&&(TextureImage[12]=LoadBMP("Data/pole.bmp")) //for pole
&&(TextureImage[13]=LoadBMP("Data/Picture2.bmp")) //for picture
&&(TextureImage[14]=LoadBMP("Data/Picture3.bmp")) //for picture
&&(TextureImage[15]=LoadBMP("Data/weirdbrick.bmp")) //for up ceiling
&&(TextureImage[16]=LoadBMP("Data/sphere.bmp")) //for ball
&&(TextureImage[17]=LoadBMP("Data/nametwc_new.bmp")) //for picture
&&(TextureImage[18]=LoadBMP("Data/Picture4.bmp")) //for picture
&&(TextureImage[19]=LoadBMP("Data/Picture1.bmp")) //for picture
&&(TextureImage[20]=LoadBMP("Data/Waterfall.bmp")) //for waterfall
&&(TextureImage[21]=LoadBMP("Data/Pool.bmp"))) //for pool
{
Status=TRUE; // Set The Status To TRUE
glGenTextures(22, &texture[0]); // Create Three Textures
for ( int loop1=0; loop1<22; loop1++) // Loop Through 22 Textures
{
// Create Nearest Filtered Texture
glBindTexture(GL_TEXTURE_2D, texture[loop1]);
glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[loop1]->sizeX, TextureImage[loop1]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[loop1]->data);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
}
for ( int loop1=0; loop1<22; loop1++) // Loop Through 22 Textures
{
if (TextureImage[loop1]) // If Texture Exists
{
if (TextureImage[loop1]->data) // If Texture Image Exists
{
free(TextureImage[loop1]->data); // Free The Texture Image Memory
}
free(TextureImage[loop1]); // Free The Image Structure
}
}
}
返回状态; //返回状态
}