EnumChildWindows-Problem?? (Borland spezifisch?)
-
hi zusammen,
das ist die situration, ich habe den code hier:void __fastcall TForm1::Button1Click(TObject *Sender) { EnumChildWindows(FindWindow(0,"Unbenannt - Editor"),MyEnumChildProc,1234); } //--------------------------------------------------------------------------- BOOL CALLBACK MyEnumChildProc(HWND hWnd, LPARAM lParam) { // Diese Funktion wird für jedes ChildWindow einmal aufgerufen // Ist die Rückgabe dieser Funktion FALSE, wird damit sofort aufgehört return(TRUE); }und MyEnumChildProc ist im header deklariert (logisch :p ). aber wenn ich das ganze starte bekomme ich folgende fehler:
[C++ Fehler] Unit1.cpp(20): E2034 Konvertierung von 'int (__stdcall *)(void *,long)' nach 'int (__stdcall *)()' nicht möglich
[C++ Fehler] Unit1.cpp(20): E2342 Keine Übereinstimmung des Typs beim Parameter 'lpEnumFunc' ('int (__stdcall *)()' erwartet, 'int (__stdcall *)(void *,long)' erhalten)ich hab mich ein bisschen hier schlau gemacht und gehört, das es vielleicht ovn einem veralteten microsoft sdk header kommen könnte (ich habe win2k servicpack 3, und bcb 6 enterprise)? was meint ihr könnt ihr mir weiterhelfen? wenn ihr den header habt und er nötig ist, könnt ihr ihn mir mitte schicken (morpheus260@uni.de)? ich wäre euch füpr eure hilfe sehr dankbra

grüße
Rubyps: habe das ins bcb forum gepostet, weil ich denke das es vielleicht compilerspezifisch ist
-
Original erstellt von Ruby:
MyEnumChildProc ist im header deklariertWie sieht die Deklaration denn genau aus? Callback-Funktionen dürfen m.E. nicht als Klassenmethoden deklariert werden.
-
Sehr schlau gemacht scheinst du dich nicht zu haben:
EnumChildWindows(FindWindow(0,"Unbenannt - Editor"), (WNDENUMPROC)MyEnumChildProc, 1234);Oder einfach den Cast lassen und stattdessen
#ifndef STRICT #define STRICT #endif[EDIT]
Wie du siehst, hättest du dir diesen Thread sparen können!
[/EDIT][ Dieser Beitrag wurde am 14.04.2003 um 23:32 Uhr von WebFritzi editiert. ]
-
Original erstellt von Jansen:
Callback-Funktionen dürfen m.E. nicht als Klassenmethoden deklariert werden.Wo siehst du dort sowas?

-
Original erstellt von WebFritzi:
**Sehr schlau gemacht scheinst du dich nicht zu haben:EnumChildWindows(FindWindow(0,"Unbenannt - Editor"), (WNDENUMPROC)MyEnumChildProc, 1234);Oder einfach den Cast lassen und stattdessen
#ifndef STRICT #define STRICT #endif[EDIT]
Wie du siehst, hättest du dir diesen Thread sparen können!
[/EDIT][ Dieser Beitrag wurde am 14.04.2003 um 23:32 Uhr von [qb]WebFritzi** editiert. ][/QB]
-
hab alles was ich weiss aus dem forum hier
koennt ihr mir nicht bitte an einem code beispiel zeigen wie es funktioniert? danke schonmal fuer eure hilfe.gruesse aus frankreich
Ruby
-
Hä? Du musst halt alles so lassen wie es ist - nur entweder ein Cast nach WNDENUMPROC oder ein #define STRICT muss dazu. Sonst nix!
-
danke webfritzi, jetzt kann ich es kaum noch erwarten wieder nach deutschland zu kommen und das auszuprobieren

gruesse qus dem verregneten frankreich
Rubyps: die tastaturen hier sind schlimm
