Results 1 to 5 of 5

Thread: CODE: Tell me whats wrong !

  1. #1

    Thread Starter
    Lively Member slx47's Avatar
    Join Date
    Apr 2002
    Location
    US
    Posts
    127

    CODE: Tell me whats wrong !

    I am using visul c++ and the errors are:

    C:\Documents and Settings\Ralph\s.cpp(40) : error C2601: 'WndProc' : local function definitions are illegal
    C:\Documents and Settings\Ralph\s.cpp(95) : error C2601: 'WinMain' : local function definitions are illegal
    C:\Documents and Settings\Ralph\s.cpp(166) : fatal error C1004: unexpected end of file found


    and my 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 SetupPizelFormat(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 stringp[] = "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_PROJECTON);
    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);
    glLoadIndentity();

    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;
    }

  2. #2
    Zaei
    Guest
    Code:
    PFD_MAIN_PLANE, 
    0, 
    0,0,0 }; 
    
    nPixelFormat = ChoosePixelFormat(hDC, &pfd); 
    
    SetPixelFormat(hDC, nPixelFormat, &pfd); 
    
    LRESULT CALLBACK WndProc (HWND hwnd, UINT message
    What is missing from the above snippet from your code =)?

    Z.

  3. #3

    Thread Starter
    Lively Member slx47's Avatar
    Join Date
    Apr 2002
    Location
    US
    Posts
    127
    im not sure what is missing

  4. #4
    Zaei
    Guest
    The closing curly brace. If you get Local Function Definitions are illegal errors, you KNOW you are missing a curley brace somewhere.

    Z.

  5. #5

    Thread Starter
    Lively Member slx47's Avatar
    Join Date
    Apr 2002
    Location
    US
    Posts
    127
    oh ok thanks for the info. Im new to visual cpp

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width