none
expected primary-expression before ')' token|

    Question

  • #include "stdlib.h"
    
    #include <windows.h>
    #include "sysmets.h"
    
    LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
    
    int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){
    	static TCHAR szAppName[] = TEXT ("HellWin");
    	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, TEXT ("Your windows version is too old! Please upgrade it!"), szAppName, MB_ICONERROR) ;
    		return 0;
    	}
    
    	hwnd = CreateWindow (szAppName, TEXT ("Get system Metrics No.1"),
                            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 lPara) {
        static int cxChar, cxCaps, cyChar;
        static int cxClient, cyClient;
    	HDC hdc;
    	int i;
    	PAINTSTRUCT ps;
    	TCHAR  szBuffer [10];
    	TEXTMETRIC tm;
    
    
    	switch (message) {
    
    	case WM_CREATE:
    	hdc = GetDC(hwnd);
    	GetTextMetrics (hdc, &tm);
    	cxChar = tm.tmAveCharWidth;
    	cxCaps = (tm.tmPitchAndFamily & 1 ? 3 : 2) * cxChar / 2;
    	cyChar = tm.tmHeight + tm.tmExternalLeading ;
    
    	ReleaseDC(hwnd, hdc);
    	return 0;
    
    
    	case WM_PAINT:
    		hdc = BeginPaint (hwnd, &ps) ;
    
    
    		for (i = 0; i < NUMLINES; i++){
    		TextOut (hdc, 0, cyChar * i,
                    sysmetrics[i].szLabel,
                    lstrlen (sysmetrics[i].szLabel));
    
            TextOut (hdc, 22 * cxCaps, cyChar * i,
                             sysmetrics[i].szDesc,
                             lstrlen (sysmetrics[i].szDesc));
    
            SetTextAlign (hdc, TA_RIGHT | TA_TOP) ;
    
            TextOut (hdc, 22 * cxCaps + 40 * cxChar, cyChar * i, szBuffer,
                    wsprintf (szBuffer, TEXT ("%5d"),
                              GetSystemMetrics (sysmetrics[i].iIndex)));
    
             SetTextAlign (hdc, TA_LEFT | TA_TOP);
    		}
    		EndPaint(hwnd, &ps);
    		return 0;
    
        case WM_SIZE:
        cxClient = LOWORD (LPARAM);
        cyClient = HIWORD (lPARAM);
        MessageBox(NULL, TEXT(cxClient "& " cyClient),szAppName,MB_ICONQUESTION);
        return 0;
    
    	case WM_DESTROY:
    		PostQuitMessage (0) ;
    		return 0;
    	}
    	return DefWindowProc (hwnd, message, wParam, lPara);
    
    }
    
    


    The problem is on the WM_SIZE case. An error appears:

    expected primary-expression before ')' token // the error appears on the line:

    cxClient = LOWORD (LPARAM);

     

    What is wrong?



    Tuesday, October 11, 2011 5:10 PM

Answers

  • wait...I tried with 

    cxClient = LOWORD (LPARA);

    cyClient = HIWORD (LPARA);
    and it doesn't work...what should i change?..i don't get it...
    Again, case-sensitivity.

    >LPARAM lPara

    cxClient = LOWORD (lPara);
    cyClient = HIWORD (lPara);

    - Wayne



    Tuesday, October 11, 2011 5:33 PM

All replies

  • LPARAM is a type, not a variable. The variable is lPara
    Tuesday, October 11, 2011 5:18 PM
  • >cxClient = LOWORD (LPARAM);
    >cyClient = HIWORD (lPARAM);

    Also note: Case-sensitivity. LPARAM != lPARAM

    - Wayne
    Tuesday, October 11, 2011 5:22 PM
  • wait...I tried with 

    cxClient = LOWORD (LPARA);

    cyClient = HIWORD (LPARA);
    and it doesn't work...what should i change?..i don't get it...
    Tuesday, October 11, 2011 5:23 PM
  • wait...I tried with 

    cxClient = LOWORD (LPARA);

    cyClient = HIWORD (LPARA);
    and it doesn't work...what should i change?..i don't get it...
    Again, case-sensitivity.

    >LPARAM lPara

    cxClient = LOWORD (lPara);
    cyClient = HIWORD (lPara);

    - Wayne



    Tuesday, October 11, 2011 5:33 PM
  • It works now,srry some compilling problems.
    Tuesday, October 11, 2011 6:29 PM