使用VS2010无法打开OpenGL窗口

时间:2013-11-30 12:31:51

标签: visual-studio-2010 opengl

我正在尝试在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
    }
}  

}
           返回状态; //返回状态
}

0 个答案:

没有答案