Thread: Utter confusion, resulting from SYSTEMTIME

  1. #1
    Registered User
    Join Date
    Mar 2004
    Posts
    220

    Utter confusion, resulting from SYSTEMTIME

    This error..I honestly have no clue about, I'm using Dev-C++ as always, and it says "Syntax error at '.' token"

    Here's my code:
    Code:
    #include <windows.h>
    
    /*  Declare Windows procedure  */
    LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
    
    /*  Make the class name into a global variable  */
    char szClassName[] = "WindowsApp";
    PAINTSTRUCT ps_ThisWnd; // this windows paint struct
    const char *successTrue = "File modified successfully.";
    const char *successFalse = "File not modified successfully.";
    bool success = false;
    
    //This is the main focus of the program, really
    SYSTEMTIME sysTime;
      sysTime.wYear = 1601;
      sysTime.wMonth = 1;
      sysTime.wDayOfWeek = 0;
      sysTime.wDay = 0;
      sysTime.wHour = 0;
      sysTime.wMinute = 0;
      sysTime.wSecond = 0;
      sysTime.wMilliseconds = 0;
    FILETIME filTime;
        if(SystemToFileTime(&filTime,&sysTime))
          success = true;  
    
    int WINAPI WinMain (HINSTANCE hThisInstance,
                        HINSTANCE hPrevInstance,
                        LPSTR lpszArgument,
                        int nFunsterStil)
    
    {
        HWND hwnd;               /* This is the handle for our window */
        MSG messages;            /* Here messages to the application are saved */
        WNDCLASSEX wincl;        /* Data structure for the windowclass */
    
        /* The Window structure */
        wincl.hInstance = hThisInstance;
        wincl.lpszClassName = szClassName;
        wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
        wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
        wincl.cbSize = sizeof (WNDCLASSEX);
    
        /* Use default icon and mouse-pointer */
        wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
        wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
        wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
        wincl.lpszMenuName = NULL;                 /* No menu */
        wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
        wincl.cbWndExtra = 0;                      /* structure or the window instance */
        /* Use Windows's default color as the background of the window */
        wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
    
        /* Register the window class, and if it fails quit the program */
        if (!RegisterClassEx (&wincl))
            return 0;
    
        /* The class is registered, let's create the program*/
        hwnd = CreateWindowEx (
               0,                   /* Extended possibilites for variation */
               szClassName,         /* Classname */
               "Windows App",       /* Title Text */
               WS_OVERLAPPEDWINDOW, /* default window */
               CW_USEDEFAULT,       /* Windows decides the position */
               CW_USEDEFAULT,       /* where the window ends up on the screen */
               544,                 /* The programs width */
               375,                 /* and height in pixels */
               HWND_DESKTOP,        /* The window is a child-window to desktop */
               NULL,                /* No menu */
               hThisInstance,       /* Program Instance handler */
               NULL                 /* No Window Creation data */
               );
    
        /* Make the window visible on the screen */
        ShowWindow (hwnd, nFunsterStil);
    
        /* Run the message loop. It will run until GetMessage() returns 0 */
        while (GetMessage (&messages, NULL, 0, 0))
        {
            /* Translate virtual-key messages into character messages */
            TranslateMessage(&messages);
            /* Send message to WindowProcedure */
            DispatchMessage(&messages);
        }
        // Fun stuff with the file, wheeeee
        if(success)
        {
          HANDLE hFile = CreateFile(
           							  TEXT( "myfile.txt" ),
           							  GENERIC_READ,
           							  FILE_SHARE_READ,
           	              NULL,
                          OPEN_EXISTING,
                          FILE_ATTRIBUTE_NORMAL,
                          NULL     
                          );
           SetSystemTime(hFile,&filTime,&filTime,&filTime);
        }  
        else
          MessageBox(NULL ,0 , 0, "Failed Window Creation!", MB_STOP | MB_OK);
        
        //makes the window redraw itself forcefully
        InvalidateRect(hwnd,0,NULL);
        /* The program return-value is 0 - The value that PostQuitMessage() gave */
        return messages.wParam;
    }
    
    
    /*  This function is called by the Windows function DispatchMessage()  */
    
    LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        switch (message)                  /* handle the messages */
        {
            case WM_DESTROY:
                PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
                break;
            case WM_PAINT:
            {
              ps_ThisWnd.hdc = GetDC(hwnd);
              if(success)
                TextOut(ps_ThisWnd.hdc,0,0,NULL,successTrue,(int)strlen(successTrue));
              else
                TextOut(ps_ThisWnd.hdc,0,0,NULL,successFalse,(int)strlen(successFalse));
              break;    
            }  
            default:                      /* for messages that we don't deal with */
                return DefWindowProc (hwnd, message, wParam, lParam);
        }
    
        return 0;
    }
    I am..completely confused, talked to 2 other programmers, they said the exact same thing.
    Last edited by Tronic; 12-30-2004 at 10:51 PM.
    OS: Windows XP Pro CE
    IDE: VS .NET 2002
    Preferred Language: C++.

  2. #2
    Registered User
    Join Date
    Apr 2002
    Posts
    1,571
    The member for milli seconds is "wMilliseconds" not "wMilliSeconds".
    "...the results are undefined, and we all know what "undefined" means: it means it works during development, it works during testing, and it blows up in your most important customers' faces." --Scott Meyers

  3. #3
    Registered User
    Join Date
    Mar 2004
    Posts
    220
    Still gives me the same errors.
    OS: Windows XP Pro CE
    IDE: VS .NET 2002
    Preferred Language: C++.

  4. #4
    Registered User
    Join Date
    Apr 2002
    Posts
    1,571
    Then you're going to have to post more code because as long as you are including <windows.h> that should be fine.
    "...the results are undefined, and we all know what "undefined" means: it means it works during development, it works during testing, and it blows up in your most important customers' faces." --Scott Meyers

  5. #5
    Registered User
    Join Date
    Mar 2004
    Posts
    220
    Post has been edited with full programs contents.
    OS: Windows XP Pro CE
    IDE: VS .NET 2002
    Preferred Language: C++.

  6. #6
    Registered User
    Join Date
    Apr 2002
    Posts
    1,571
    You can't just put that code there in global scope and hope to accomplish anything with it. You either need to move that code into the WinMain function or make a new function for it and call it from within WinMain or another appropriate place. I think your code has other errors but just clean that one up and try to fix the others on your own first.
    "...the results are undefined, and we all know what "undefined" means: it means it works during development, it works during testing, and it blows up in your most important customers' faces." --Scott Meyers

  7. #7
    Registered User
    Join Date
    Mar 2004
    Posts
    220
    Out of curiosity, why can't I declare a SYSTEMTIME structure in Global Scope?
    OS: Windows XP Pro CE
    IDE: VS .NET 2002
    Preferred Language: C++.

  8. #8
    and the hat of int overfl Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    39,660
    > why can't I declare a SYSTEMTIME structure in Global Scope?
    You can.
    It's the statements which follow it which are the problem. Statements must be inside functions.

  9. #9
    Registered User
    Join Date
    Mar 2004
    Posts
    220
    Ahh, I see

    I didn't think of that, thanks for your reply Salem.

    ~Tronic
    OS: Windows XP Pro CE
    IDE: VS .NET 2002
    Preferred Language: C++.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Writing FILETIME or SYSTEMTIME to File?
    By Tojam in forum Windows Programming
    Replies: 2
    Last Post: 09-23-2003, 01:55 AM