-
Error ?
can someone tell me what kind of error this is(using visual cpp):
--------------------Configuration: s - Win32 Debug--------------------
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/s.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
-
This is a Linker error that has many causes, but usually has something to do with a missing function body after you have placed a prototype for a function in a class and then try to call it. If you are coding the function outside of the class don't forget to use the scope resolution operator to identify the class that it is a member of. This can by caused by other things as well though.
-Disguised
-
>unresolved external symbol _main
Do you have a main()? Or is this a windows program (WinMain())? If you have a WinMain(), you need to change your options to build a windows program instead of a console program.
-
im using winmain w/opengl. I switched it to win32 but i got this error:
--------------------Configuration: sw - Win32 Debug--------------------
Compiling...
sw.cpp
c:\program files\microsoft visual studio\myprojects\sw\sw.cpp(163) : fatal error C1010: unexpected end of file while looking for precompiled header directive
Error executing cl.exe.
sw.obj - 1 error(s), 0 warning(s)
what does this mean ?
-
When you created the application did you chose Win32 Application, or Win32 Console Application?
-
>unexpected end of file while looking for precompiled header directive
No way to know without seeing some code, but it looks like you are missing a line somewhere, or forgot a }.
-
i select win32 application and my code is:
Code:
// Includes
#include <windows.h>
#include <gl/gl.h>
#include <gl/glu.h>
#include <gl/glaux.h>
float angle = 0.0f;
HDC g_HDC;
void SetupPixelFormat(HDC hDC)
{
int nPixelFormat;
static PIXELFORMATDESCRIPTOR pfd= {
sizeof(PIXELFORMATDESCRIPTOR),
1,
PFD_DRAW_TO_WINDOW |
PFD_SUPPORT_OPENGL |
PFD_DOUBLEBUFFER,
PFD_TYPE_RGBA,
32,
0,0,0,0,0,0,
0,
0,
0,
0,0,0,0,
16,
0,
0,
PFD_MAIN_PLANE,
0,
0,0,0 };
nPixelFormat = ChoosePixelFormat(hDC, &pfd);
SetPixelFormat(hDC, nPixelFormat, &pfd);
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
static HGLRC hRC;
static HDC hDC;
char string[] = "Hello World";
int width, height;
switch (message)
{
case WM_CREATE:
hDC = GetDC(hwnd);
g_HDC = hDC;
SetupPixelFormat(hDC);
hRC = wglCreateContext(hDC);
wglMakeCurrent(hDC, hRC);
return 0;
break;
case WM_CLOSE:
wglMakeCurrent(hDC, NULL);
wglDeleteContext(hRC);
PostQuitMessage(0);
return 0;
break;
case WM_SIZE:
height = HIWORD(lParam);
width = LOWORD(lParam);
if (height == 0)
{
height = 1;
}
glViewport(0,0,width,height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,1.0f,1000.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
return 0;
break;
default:
break;
}
return (DefWindowProc(hwnd, message, wParam, lParam));
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
WNDCLASSEX windowClass;
HWND hwnd;
MSG msg;
bool done;
windowClass.cbSize = sizeof(WNDCLASSEX);
windowClass.style = CS_HREDRAW | CS_VREDRAW;
windowClass.lpfnWndProc = WndProc;
windowClass.cbClsExtra = 0;
windowClass.cbWndExtra = 0;
windowClass.hInstance = hInstance;
windowClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
windowClass.hCursor = LoadCursor(NULL, IDC_ARROW);
windowClass.hbrBackground = NULL;
windowClass.lpszMenuName = NULL;
windowClass.lpszClassName = "MyClass";
windowClass.hIconSm = LoadIcon(NULL, IDI_WINLOGO);
if (!RegisterClassEx(&windowClass))
return 0;
hwnd = CreateWindowEx(NULL,"MyClass","The opengl Window Application",WS_OVERLAPPEDWINDOW | WS_VISIBLE | WS_SYSMENU | WS_CLIPSIBLINGS, 100,100,400,400,NULL,NULL,hInstance,NULL);
if (!hwnd)
return 0;
ShowWindow(hwnd, SW_SHOW);
UpdateWindow(hwnd);
done = false;
while (!done)
{
PeekMessage(&msg, hwnd,NULL,NULL, PM_REMOVE);
if (msg.message == WM_QUIT)
{
done = true;
}
else
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
angle = angle + 0.1f;
if (angle >= 360.0f)
angle = 0.0f;
glTranslatef(0.0f,0.0f,-5.0f);
glRotatef(angle,0.0f,0.0f,1.0f);
glColor3f(1.0f,0.0f,0.0f);
glBegin(GL_TRIANGLES);
glVertex3f(0.0f,0.0f,0.0f);
glVertex3f(1.0f,0.0f,0.0f);
glVertex3f(1.0f,1.0f,0.0f);
glEnd();
SwapBuffers(g_HDC);
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return msg.wParam;
}
-
Well, I've got good news and bad news. The good news is your code compiled perfectly on my machine. When I run the .exe, it displays a rotating red triangle. The bad news is this doesn't help you.
Maybe one of your header files is hosed, like:
#include <gl/gl.h>
#include <gl/glu.h>
#include <gl/glaux.h>
I'm using the free borland compiler. I guess if you get desparate you can try it.