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...