Komisches Problem!



  • ICh habe ein Prog geschrieben.Aber irgendwie zeigt der Compiler immer an,das ei paar Klammern fehlen.
    Hier die fehlermeldung:
    C:\Programme\Microsoft Visual Studio\MyProjects\iop\kk.cpp(114) : error C2059: Syntaxfehler : ')'
    C:\Programme\Microsoft Visual Studio\MyProjects\iop\kk.cpp(114) : error C2059: Syntaxfehler : ')'
    C:\Programme\Microsoft Visual Studio\MyProjects\iop\kk.cpp(115) : error C2143: Syntaxfehler : Fehlendes ';' vor '{'

    Und hier der Quelltext:

    #include <windows.h>
    
    #define NUMLINES ((int)) (sizeof devcaps/ sizeof devcaps[0]))
    
    struct
    {
    	int iIndex;
    	TCHAR * szLabel;
    	TCHAR * szDesc;
    }
    devcaps[] = 
    {
    	HORZSIZE,     TEXT("HORZSIZE"),     TEXT("Breite in Millimetern:"),
    	VERTSIZE,     TEXT("VERTSIZE"),     TEXT("Höhe in Millimetern:"),
    	HORZRES,      TEXT("HORZRES"),      TEXT("Breite in Pixeln:"),
    	VERTRES,      TEXT("VERTRES"),      TEXT("Höhe in Pixeln:"),
    	BITSPIXEL,    TEXT("BITSPIXEL"),    TEXT("Farbbits pro Pixel"),
    	PLANES,       TEXT("PLANES"),       TEXT("Anzahl Farbebenen"),
    	NUMBRUSHES,   TEXT("NUMBRUSHES"),   TEXT("Anzahl Füllebenen"),
    	NUMPENS,      TEXT("NUMPENS"),      TEXT("Anzahl Zeichenstifte:"),
    	NUMMARKERS,   TEXT("NUMMARKERS"),   TEXT("Anzahl Marker:"),
        NUMFONTS,     TEXT("NUMFONTS"),     TEXT("Anzahl Schriftarten:"),
    	NUMCOLORS,    TEXT("NUMCOLORS"),    TEXT("Anzahl Farben:"),
    	PDEVICESIZE,  TEXT("PDEVICESIZE"),  TEXT("Umfang der Datenstruktur:"),
        ASPECTX,      TEXT("ASPECTX"),      TEXT("Relative Pixelbreite:"),
    	ASPECTY,      TEXT("ASPECTY"),      TEXT("Relative Pixelhöhe:"),
    	ASPECTXY,     TEXT("ASPECTXY"),     TEXT("Reletive Pixeldiagonale"),
    	LOGPIXELSX,   TEXT("LOGPIXELSX"),   TEXT("Punkte pro Zoll, horizontal.:"),
    	LOGPIXELSY,   TEXT("LOGPIXELSY"),   TEXT("Punkte pro Zoll, vertikal.:"),
    	SIZEPALETTE,  TEXT("SIZEPALETTE"),  TEXT("Anzahl der Paletteneinträge"),
    	NUMRESERVED,  TEXT("NUMRESERVED"),  TEXT("Reservierte Paletteneinträge"),
    	COLORRES,     TEXT("CLORRES"),      TEXT("Tatsächliche Farbenanzahl")
    };
    
    LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
    {
    	TCHAR szAppName[] = TEXT("WINXP");
    	MSG msg;
    	HWND hwnd;
    	WNDCLASS wndclass;
    
    	wndclass.style = CS_HREDRAW | CS_VREDRAW;
    	wndclass.lpfnWndProc = WndProc;
    	wndclass.cbClsExtra = 0;
    	wndclass.cbWndExtra = 0;
    	wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
    	wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    	wndclass.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
        wndclass.lpszClassName = szAppName;
    	wndclass.lpszMenuName = 0;
    
    	if(!RegisterClass(&wndclass)) {
    		MessageBox(hwnd, TEXT("Fehler beim ausführen des Programms"), szAppName, MB_ICONERROR);
    	}
    
    	hwnd = CreateWindow(szAppName,
    		TEXT("Bildschirm Daten"),
    		WS_OVERLAPPEDWINDOW,
    		CW_USEDEFAULT,
    		CW_USEDEFAULT,
    		CW_USEDEFAULT,
    		CW_USEDEFAULT,
    		NULL,
    		NULL,
    		hInstance,
    		NULL);
    
    	ShowWindow(hwnd, nShowCmd);
    	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)
    {
    	TCHAR szBuffer[10];
    	static int cxChar, cyChar;
    	int i;
    	PAINTSTRUCT ps;
    	TEXTMETRIC tm;
    	HDC hdc;
    
    	switch(message)
    	{
    	case WM_CREATE:
    		hdc = GetDC(hwnd);
    
    		GetTextMetrics(hdc, &tm);
    		cxChar = tm.tmAveCharWidth;
    		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, devcaps[i].szLabel, lstrlen(devcaps[i].szLabel));
    			TextOut(hdc, 22*cxChar, cyChar*i, devcaps[i].szDesc, lstrlen(devcaps[i].szDesc));
    			TextOut(hdc, 22*cxChar+44*cxChar, cyChar*i, szBuffer, wsprintf(szBuffer, TEXT("%d"), GetDeviceCaps(hdc, devcaps[i].iIndex)));
    		}
    		EndPaint(hwnd, &ps);
    
    		return 0;
    
    	case WM_DESTROY:
    		PostQuitMessage(0);
    		return 0;
    	}
    	DefWindowProc(hwnd, message, wParam, lParam);
    }
    

    Irgendwo bei der for Schleife muss das sein.Ich habe schon eine Stunde gesucht,aber nichts gefunden!



  • #define NUMLINES ((int)) (sizeof devcaps/ sizeof devcaps[0]))



  • Beim struct fehlt zumindest mal nach } der Strichpunkt 😉



  • Danke!Es kommt jetzt keine Fehlermeldung!
    Aber dafür erscheint bei der Ausführung nur der übliche Warnhinweis von Microsoft,aber vom Fenster bekomme ich nichts zu sehen!



  • wndclass.hInstance = hInstance ;
    ...fehlt...


Anmelden zum Antworten