Probleme mit CallWindowProc
-
ich habe diesen code aus mehreren Beispielen:
WNDPROC g_wndpEdit; HWND hWnd; WPARAM wParam; LPARAM lParam; UINT uMsg; LRESULT lResult; lResult = CallWindowProc(g_wndpEdit, hWnd, uMsg, wParam, lParam); // hier tritt der Fehler aufaber jedesmal beim Compilieren bekomme ich 2 fehlermeldungen
[C++ Fehler] Unit1.cpp(24): E2034 Konvertierung von 'long (__stdcall *)(void *,unsigned int,unsigned int,long)' nach 'int (__stdcall *)()' nicht möglich [C++ Fehler] Unit1.cpp(24): E2342 Keine Übereinstimmung des Typs beim Parameter 'lpPrevWndFunc' ('int (__stdcall *)()' erwartet, 'long (__stdcall *)(void *,unsigned int,unsigned int,long)' erhalten)weiss jemand an was das liegt?

Habe Borland C++ Builder 6 Proschonmal thx
-
Hab mir jetzt die Funktion bei MSDN mal angeschaut (kleiner Tipp für die Zukunft
), und da steht folgendesMSDN schrieb:
If STRICT is defined, the lpPrevWndFunc parameter has the data type WNDPROC. The WNDPROC type is declared as follows:
LRESULT (CALLBACK* WNDPROC) (HWND, UINT, WPARAM, LPARAM);
If STRICT is not defined, the lpPrevWndFunc parameter has the data type FARPROC. The FARPROC type is declared as follows:
int (FAR WINAPI * FARPROC) ()
In C, the FARPROC declaration indicates a callback function that has an unspecified parameter list. In C++, however, the empty parameter list in the declaration indicates that a function has no parameters. This subtle distinction can break careless code. Following is one way to handle this situation:
#ifdef STRICT
WNDPROC MyWindowProcedure
#else
FARPROC MyWindowProcedure
#endif
...
lResult = CallWindowProc(MyWindowProcedure, ...) ;Ich persönlich würde dazu neigen, STRICT ganz einfach zu definieren.
-
groovemaster schrieb:
Hab mir jetzt die Funktion bei MSDN mal angeschaut (kleiner Tipp für die Zukunft
)glaube mir, das habe ich stundenlang gemacht.. aber da mein englisch noch nciht so wirklich ausgereift ist, sah ich langsam keinen wald mehr vor lautet bäumen.
aber vielmal thx, das hat funktioniert und mir weitergeholfen
-
BigNeal schrieb:
glaube mir, das habe ich stundenlang gemacht.. aber da mein englisch noch nciht so wirklich ausgereift ist, sah ich langsam keinen wald mehr vor lautet bäumen.
Sry, konnte ich ja nicht wissen. Hättest du vllt. auch dazu schreiben können. Ich hoffe, du verstehst den kurzen Auszug. Schliesslich hab ich einfach nur Copy&Paste gemacht. Ansonsten, einfach fragen. Immerhin kostet das nix.

-
schon ok, habe ja auch nichts gross dazu geschrieben

jep, danke habe alles verstanden. kleinere Texte verstehe ich schon, aber nach ner gewissen zeit und nach X-Seiten msdn auf englisch lief bei mir ne zeitlang gar nichts mehr auf englisch.
aber funktioniert alles so wie ich es wollte
nochmals thx