Jeg har netop lånt bogen "Windows programmering med C og C++" på biblioteket. Med denne bog følger en diskette med alle de kodeksempler der bliver brugt i bogen.
Jeg tog så det første eksempel som gerne burde give et helt tomt vindue. Men koden giver følgende fejl:
[Linker error] undefined reference to `__gxx_personality_v0'
Koden ser sådan ud:
// WTEST.C: Test windows programming using C.
#define STRICT
#include <windows.h>
long FAR PASCAL _export WndProc(HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam);
int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{ char szAppName[]="wtest";
WNDCLASS wndclass;
HWND hWnd;
MSG msg;
int xScreen = GetSystemMetrics(SM_CXSCREEN),
yScreen = GetSystemMetrics(SM_CYSCREEN);
if (!hPrevInstance)
{ 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)+1;
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = szAppName;
// Name used in call to CreateWindow.
if (!RegisterClass(&wndclass)) return FALSE;
}
hWnd = CreateWindow(
szAppName,
"Windows test 1", // Text for window title bar.
WS_OVERLAPPEDWINDOW, // Window style.
0, // Initial x position
0, // Initial y position.
xScreen, // Width.
yScreen, // Height.
NULL, // Parent window handle.
NULL, // Window menu handle.
hInstance, // Program instance handle.
NULL // Create parameters.
);
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
while (GetMessage(&msg, NULL, 0, 0))
{ TranslateMessage(&msg); // Translates virtual key codes
DispatchMessage(&msg); // Dispatches message to window
}
return msg.wParam; // Returns the value from PostQuitMessage
}
long FAR PASCAL _export WndProc(HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam)
{ switch (message)
{ case WM_DESTROY:
PostQuitMessage(0); break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0L;
}
Et eller andet siger mig at koden er forældet (Bogen er fra 1994)
Nogen der ved hvad der er galt?
Det skal måske lige siges at det er C eksemplet fra bogen jeg har brugt her... C++ eksemplet gav mange andre fejl...
En anden ting er at jeg bruger Dev-cpp som kompiler
-----
Email: christian [at] steffweb [dot] dk
MSN: christian [at] steffweb [dot] dk