Advertisement Jump to content


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


UES when compiling NeHe's 1st tutorial

This topic is 6860 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

Hello everyone, I just started NeHe's first OpenGl tutorial and am having a problem when compiling. I get an Unresolved External symbol whenever compiling. Included below is the error and code. Error: LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 Debug/OpenGL.exe : fatal error LNK1120: 1 unresolved externals // START CODE ////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// // Main.cpp: // Run-Time Entrance ///////////////////////////////////////////////////////////////////// // INCLUDES ///////////////////////////////////////////////////////// #include "windows.h" #include "windowsx.h" #include "gl\gl.h" #include "gl\glu.h" #include "gl\glaux.h" // GLOBALS ////////////////////////////////////////////////////////// HDC hDC; // Handle to a Device Context HGLRC hRC; // Handle to a Rendering Context HWND hWnd; // Handle to a window bool keys[256]; // Array used for the keyboard function bool active = TRUE; // Windows active flag bool fullscreen = TRUE; // Fullscreen flag // PROTOTYPES /////////////////////////////////////////////////////// LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); // FUNCTIONS //////////////////////////////////////////////////////// // Resize and initialize the GL window GLvoid ResizeGLScene(GLsizei width, GLsizei height) { if (height == 0) // Prevent a divide by zero by height = 1; // making height equal to one glViewport(0, 0, width, height); // Reset current viewport glMatrixMode(GL_PROJECTION); // Select the projection matrix glLoadIdentity(); // Reset projection matrix // Calculate the aspect ratio of the window gluPerspective(45.0f, (GLfloat)width / (GLfloat)height ,0.1f ,100.0f); glMatrixMode(GL_MODELVIEW); // Select the Modelview Matrix glLoadIdentity(); // Reset projection maxtrix } ///////////////////////////////////////////////////////////////////// // Initialize OpenGl int InitGL(GLvoid) { glShadeModel(GL_SMOOTH); // Enables smooth shading glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // Color to clear to (black) glClearDepth(1.0); // Depth buffer setup glEnable(GL_DEPTH_TEST); // Enable depth testing glDepthFunc(GL_LEQUAL); // Depth test to do // Give a really nice perspective calculations glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); return TRUE; } ///////////////////////////////////////////////////////////////////// // Do all the drawing here int DrawGLScene(GLvoid) { // Clear the screen and add the depth buffer glClear(GL_COLOR_BUFFER_BIT / GL_DEPTH_BUFFER_BIT); glLoadIdentity(); // Reset Matrix return TRUE; } ///////////////////////////////////////////////////////////////////// // Properly destroy the window GLvoid KillGLWindow(GLvoid) { if (fullscreen) // Are we in fullscreen mode? { ChangeDisplaySettings(NULL, 0); // If so, switch to window ShowCursor(TRUE); // Show mouse pointer } if (hRC) { if (!wglMakeCurrent(NULL, NULL)) // Can we release DC and RC { MessageBox(NULL, "Release of DC and RC Failed.", "Shutdown Error", MB_OK / MB_ICONINFORMATION); } if (!wglDeleteContext(hRC)) { MessageBox(NULL, "Release of rendering context failed.", "Shutdown Error", MB_OK / MB_ICONINFORMATION); } hRC = NULL; } if (hDC && ReleaseDC(hWnd, hDC)) { MessageBox(NULL, "Release of hDC failed.", "Shutdown Error", MB_OK / MB_ICONINFORMATION); hDC = NULL; } if (hWnd && !DestroyWindow(hWnd)) { MessageBox(NULL, "Could not destroy active window.", "Shutdown Error", MB_OK / MB_ICONINFORMATION); hWnd = NULL; } } // END CODE //////////////////////////////////////////////// Anyone have a clue why this is happening? Edited by - Reaptide on 4/7/00 4:28:31 PM

Share this post

Link to post
Share on other sites
You aren''t supplying an entry point for your code. When compiling for Windows you need either a main or a WinMain function (depending on if it''s a console or windows applicaiton). In this case you need to create a WinMain function that will initialize your windows, setup callback functions, etc. If you were just following along rather than downloading the tutorial, his WinMain is specified about 90% down the page.

Share this post

Link to post
Share on other sites

  • Advertisement

Important Information

By using, you agree to our community Guidelines, Terms of Use, and Privacy Policy. is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!