Thread: Can somebody tell me why this program isn't compiling?

  1. #1
    Registered User
    Join Date
    Jan 2005
    Posts
    204

    Can somebody tell me why this program isn't compiling?

    Code:
    #include <windows.h>
    #include <time.h>
    
    LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
    
    int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                        PSTR szCmdLine, int iCmdShow)
    {
         char         szAppName[] = "Win32 API";
         HWND         hwnd;
         MSG          msg;
         WNDCLASS     wndclass;
    
         wndclass.style         = CS_HREDRAW | CS_VREDRAW;
         wndclass.lpfnWndProc   = WndProc;
         wndclass.cbClsExtra    = 0;
         wndclass.cbWndExtra    = 0;
         wndclass.hInstance     = hInstance ;
         wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION);
         wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW);
         wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);
         wndclass.lpszMenuName  = NULL;
         wndclass.lpszClassName = szAppName;
    
         if (!RegisterClass (&wndclass)){
              MessageBox (NULL, "This program requires Windows NT!", 
                          szAppName, MB_ICONERROR);
              return 0;
         }
         
         hwnd = CreateWindow (szAppName,               
                              "Win32 API", 
                              WS_OVERLAPPEDWINDOW,        
                              CW_USEDEFAULT,              
                              CW_USEDEFAULT,              
                              CW_USEDEFAULT,              
                              CW_USEDEFAULT,              
                              NULL,                       
                              NULL,                       
                              hInstance,                  
                              NULL) ;                     
         
         ShowWindow (hwnd, iCmdShow) ;
         UpdateWindow (hwnd) ;
         
         while (GetMessage (&msg, NULL, 0, 0)){
              TranslateMessage (&msg) ;
              DispatchMessage (&msg) ;
         }
         return msg.wParam ;
    }
    
    LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
         int                  i;
         static int           cyChar;
         LOGFONT              lf;
         HDC                  hdc;
         PAINTSTRUCT          ps;
         TEXTMETRIC           text_metric;
         time_t               time_t_struct;
         tm                   tm_struct;
         
         time(&time_t_struct);
         tm_struct = *(localtime(&time_t_struct));
         
         char *week_day[]      = {"Domingo", "Segunda-feira", "Terça-feira", 
                                  "Quarta-feira", "Quinta-feira", "Sexta-feira", 
                                  "Sábado"};
                             
         char *month[]         = {"Janeiro", "Fevereiro", "Março", "Abril", "Maio",
                                  "Junho", "Julho", "Agosto", "Setembro", "Outubro", 
                                  "Novembro", "Dezembro"};
                             
         char *date_and_time[] = {week_day[tm_struct.w_day], ", ", tm_struct.m_day};
         
         char *introduction[]  = {"Welcome!", 
                                  "Win32 API.",
                                  "C.",
                                  "-------------------------------------------------"};
                                  
         switch (message)
         {
         case WM_CREATE:
              hdc = GetDC(hwnd);
              
              GetTextMetrics(hdc, &text_metric);
              cyChar = text_metric.tmHeight + text_metric.tmExternalLeading;
              
              ReleaseDC(hwnd, hdc);
              return 0;
                  
         case WM_PAINT:
              hdc = BeginPaint(hwnd, &ps) ;
              
              GetObject(GetStockObject(SYSTEM_FONT), sizeof(lf), &lf);
              
              lf.lfHeight = 10;
              lf.lfWeight = 0;
              strcpy(lf.lfFaceName, "Courier");
              
              SelectObject(hdc, CreateFontIndirect(&lf));
              
              for(i = 0; i != sizeof(introduction) / 4; i++)
                  TextOut(hdc, 0, cyChar * i, introduction[i], strlen(introduction[i]));
              
              DeleteObject(SelectObject(hdc, GetStockObject(SYSTEM_FONT)));
              
              UpdateWindow (hwnd);
              
              EndPaint(hwnd, &ps);
              return 0 ;
              
         case WM_DESTROY:
              PostQuitMessage(0);
              return 0;
         }
         return DefWindowProc(hwnd, message, wParam, lParam);
    }
    I just don't understand why I get this error:

    62 C:\Documents and Settings\caduardo21\Desktop\C++\ivan\ivan.c `tm' undeclared (first use in this function)

    Dev-C++ on Windows XP...

    Thanks.

  2. #2
    pronounced 'fib' FillYourBrain's Avatar
    Join Date
    Aug 2002
    Posts
    2,297
    I'm goin to go ahead and guess that it is because tm is undeclared.
    "You are stupid! You are stupid! Oh, and don't forget, you are STUPID!" - Dexter

  3. #3
    pronounced 'fib' FillYourBrain's Avatar
    Join Date
    Aug 2002
    Posts
    2,297
    change tm to

    struct tm
    "You are stupid! You are stupid! Oh, and don't forget, you are STUPID!" - Dexter

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Need help with my program...
    By Noah in forum C Programming
    Replies: 2
    Last Post: 03-11-2006, 07:49 PM
  2. adding an #include stops my program from compiling
    By angelscars in forum C++ Programming
    Replies: 5
    Last Post: 11-11-2005, 05:24 PM
  3. Dikumud
    By maxorator in forum C++ Programming
    Replies: 1
    Last Post: 10-01-2005, 06:39 AM
  4. Replies: 3
    Last Post: 04-19-2004, 08:09 AM
  5. My program, anyhelp
    By @licomb in forum C Programming
    Replies: 14
    Last Post: 08-14-2001, 10:04 PM