scopes und Pointer Deklaration!
-
Hallo Leute,
ich brauch einen Pointer in meiner Applikation, der in verschiedenen C files deklariert werden soll bzw. verwendet werden kann.
Wie mach ich das?????
einfach irgendwo ausserhalb der main und sonstiger Funktionen????
so vielleicht irgendwie??
extern type *name;Um etwas konkreter zu werden, ich brauch einen Pointer auf ein Widget, sodass ich dieses Widget von verschiedenen Funktionen in verschiedenen c-files bearbeiten kann. zB: buttons enablen oder ähnliches. In die Funktionen übergebe ich mir den Pointer jeweils über den Parameter, aber wie mach ich dass, dass der in jedem c-file sichtbar is?
Beste Grüße,...
-
Wenn du den Pointer sowieso als Parameter übergibst, brauchst du ihn nicht global zu lagern - du teilst ja jeder Funktion, die ihn braucht, mit wo dein wxWidget zu finden ist

-
Ja das ist mir schon klar, denke ich zumindest!! Aber damit ich den Pointer der Funktion erstmals übergeben kann muss ich ihn doch in diesem C-file erstmal sichtbar machen.
Definieren und Deklarieren tue ich ihn in einem ganz anderern C-file, nämlich in jenem, in dem ich die ganzen Widgets aufbaue.
??? Bitte um Hilfe ???
Beste Grüße
-
Klar, die Funktion, die den Pointer entgegennimmt, muß dazu auch in der Lage sein (und von der Hauptfunktion aus sichtbar) - aber dazu reicht es aus, diese Funktion in einem Header zu deklarieren:
//Func.h void worker_func(wxWidget* target); //Func.cpp #include "Func.h" void worker_func(wxWidget* target) { ...//die Funktion kennt den Pointer 'target' und kann jetzt damit hantieren } //main.cpp #include "Func.h" int main() { wxWidget main_window; worker_func(&main_window);//übergibt der Funktion die Adresse des lokalen Objekts //das heißt, alle Zugriffe auf target->... oder *target aus der Funktion heraus //wirken direkt auf das Objekt 'main_window' }
-
danke, alles klar!
Hatte unter anderem Probleme mit der Syntax!!
Schöne Grüße