Archived

This topic is now archived and is closed to further replies.

probles loding bmp

This topic is 5134 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Im kinda new to openGL, an could do with some help. I am trying to create a simple program that can load a bmp and attatch it to a flat serface for display, later i wish to build this into a bigger program for a game im making. Every time i try to create the program i get the two following errors:- *bmploader.obj : error LNK2001: unresolved external symbol _auxDIBImageLoadA@4 *Debug/bmp_loader.exe : fatal error LNK1120: 1 unresolved externals Bellow is the code that im usin, if anyone could help it would be greatly appreciated. thx #include <windows.h> #include <GL/gl.h> #include <GL/glu.h> #include <gl/glut.h> #include <gl/glaux.h> #include <stdio.h> GLuint texture[1]; AUX_RGBImageRec *LoadBMP(char *Filename) // Loads A Bitmap Image { FILE *File=NULL; // File Handle 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 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 } int LoadGLTextures() // Load Bitmaps And Convert To Textures { int Status=FALSE; // Status Indicator AUX_RGBImageRec *TextureImage[1]; // Create Storage Space For The Texture memset(TextureImage,0,sizeof(void *)*1); // Set The Pointer To NULL if (TextureImage[0]=LoadBMP("NeHe.bmp")) // Load The Bitmap, Check For Errors, If Bitmap''s Not Found Quit { Status=TRUE; // Set The Status To TRUE glGenTextures(1, &texture[0]); // Create The Texture glBindTexture(GL_TEXTURE_2D, texture[0]); // Typical Texture Generation Using Data From The Bitmap glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[0]->sizeX, TextureImage[0]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[0]->data); // Generate The Texture glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); // Linear Filtering glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); // Linear Filtering } if (TextureImage[0]) // If Texture Exists { if (TextureImage[0]->data) // If Texture Image Exists { free(TextureImage[0]->data); // Free The Texture Image Memory } free(TextureImage[0]); // Free The Image Structure } return Status; // Return The Status } int myinit(GLvoid) { if (!LoadGLTextures()) // Jump To Texture Loading Routine ( NEW ) { return FALSE; // If Texture Didn''t Load Return FALSE ( NEW ) } glEnable(GL_TEXTURE_2D); // Enable Texture Mapping ( NEW ) glShadeModel(GL_SMOOTH); // Enable Smooth Shading glClearColor(0.0f, 0.0f, 0.0f, 0.5f); // Black Background glClearDepth(1.0f); // Depth Buffer Setup glEnable(GL_DEPTH_TEST); // Enables Depth Testing glDepthFunc(GL_LEQUAL); // The Type Of Depth Testing To Do glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // Really Nice Perspective Calculations glColor3f(0.0f, 0.0f, 0.0f); glPointSize(4.0); glMatrixMode(GL_PROJECTION); gluOrtho2D(0.0, 800.0, 0.0, 600.0); return TRUE; // Initialization Went OK } int maindisplay(GLvoid) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear The Screen And The Depth Buffer glLoadIdentity(); // Reset The View glTranslatef(0.0f,0.0f,-5.0f); glBindTexture(GL_TEXTURE_2D, texture[0]); glBegin(GL_QUADS); // Front Face glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f, 1.0f); glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f, 1.0f); glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f, 1.0f, 1.0f); glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f, 1.0f, 1.0f); glEnd(); return TRUE; // Keep Going } void main (int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(800, 600); //declares window size glutInitWindowPosition(100, 100); //declares x , y coordinates for starting position of window glutCreateWindow("cube"); //title for window //glutDisplayFunc(maindisplay); maindisplay(); myinit(); glutMainLoop(); }

Share this post


Link to post
Share on other sites
You need to make sure that you link with whatever library or whatever contains auxDIBImageLoad.

Searching online, I believe you just need to link with glaux.lib and you should be set.

Share this post


Link to post
Share on other sites