Archived

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

reaptide

UES when compiling NeHe's 1st tutorial

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