17. maj 2002 - 13:35Der er
10 kommentarer og 2 løsninger
Compilerings fejl
Jeg er C++ Newbie!!
Jeg er ved at lære C, ved at læse en bog af Ivor Horton
Problemet er at jeg at skrevet et eksempel af fra bogen, men når jeg compilere det kommer C med denne fejl --------------------------------------- C:\cpp_test\ofwin\OFWIN.cpp(48) : error C2447: missing function header (old-style formal list?)
--------------------------------------- Problemet er at jeg ikke ved hvad den betyder??
Hvis der er en der vil kigge på koden og forklare mig hvad problemet drejer sig om, så ville jeg være glad?
// OFWIN.cpp: implementation of the OFWIN class. // //////////////////////////////////////////////////////////////////////
#include "windows.h"
long WINAPI WindowProc(HWND hWnd,UINT message, WPARAM wParam, LPARAM lParam);
long WINAPI WindowProc(HWND hWnd,UINT message, WPARAM wParam, LPARAM lParam); { // Jeg mener at det må være herfra og ned problemet er?? HDC hDC; PAINTSTRUCT PaintSt; RACT aRect;
switch(message) { case WM_PAINT: hDC = BeginPaint(hWnd, &PaintSt);
GetClientRect(hWnd, &aRect);
SetBkMode(hDC, TRANSPARENT);
DrawText(hDC, "Dette er bare en Test", -1, &aRect, DT_SINGLELINE|DT_CENTER|DT_VCENTER);
_____________________________________________________ Bogen nævner noget med at nogle klasser er blevet erstattet med nyere klasser, kan det være årsagen??
Sæt fx et break point i første linie af WinMain (placér cursoren på linien og tryk F9). Tryk så F5 for at starte en debug session. Programmet skulle gerne stoppe ved første linie med et break point. Udfør koden én linie ad gangen ved at trykke F10 og se hvor det går galt..!
/chries - Du har ret i det med at det er RegisterClass(&WindowClass); der fejler, men hvis jeg udkommentere "Background" linjen, så "starter" programmet, men der er intet program.(intet windue)
Der kommer desuden disse "fejl" i debug vinduet Loaded 'C:\WINNT\System32\ntdll.dll', no matching symbolic information found. Loaded 'C:\WINNT\system32\USER32.DLL', no matching symbolic information found. Loaded 'C:\WINNT\system32\KERNEL32.DLL', no matching symbolic information found. Loaded 'C:\WINNT\system32\GDI32.DLL', no matching symbolic information found.
Der har du også et ; stående til sidst i linjen... Det minder mistænkeligt meget om en copy-paste af din WindowProc-declaration, så slet lige det ;, så det ser sådan her ud:
long WINAPI WindowProc(HWND hWnd,UINT message, WPARAM wParam, LPARAM lParam) { // Jeg mener at det må være herfra og ned problemet er?? HDC hDC; .....
Meeen... Alligevel kunne det komme noget fornuftigt ud af mig ;) hehehe
Det der giver dine fejl med RegisterClass(&WindowClass), er at du har glemt at tildele en værdi til en af variablene i WNDCLASS-strukturen... Du skal huske lpszMenuName:
WindowClass.lpszMenuName = NULL;
Hvis ikke du sætter den til NULL (eller 0), vil den ha en tilfældig værdi, og RegisterClass til derfor prøve at gøre noget fornuftig med en eller anden menu som ikke eksisterer...
PS!!! Det var ihvert fald det eneste jeg skulle ændre for at det virkede her (Ud over dine slåfejl, som du selv havde pointeret)
-->mbulow Så kom der alligevel noget fornuftigt ud af dig !! ;-))
Det virker perfekt..
Tak til jer begge.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.