Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Globale Deklaration

W.Stecher / 3 Antworten / Flachansicht Nickles

Hallo, ich stehe seit Tagen vor einem Problem und finde keine Lösung dafür:


Ich schreibe mit Borland C++ Builder ein kleines Programm.
In meinem Hauptfenster habe ich global, also außerhalb jeder Funktion, eine Struktur deklariert.
Ich kann auch wunderbar aus allen Funktionen auf sie zugreifen.
Das in der Struktur abgespeicherte möchte ich in einem zweiten Fenster anzeigen lassen.
Wenn ich aber ein zweites Fenster erstelle, dann bastelt sich der C++ Builder hierfür einen eigenen C++-File. Die Deklaration aus dem Hauptfenster bringt mir somit gar nichts mehr.


Ich möchte die Struktur nicht übergeben, sondern von allen Funktionen und aus allen Fenstern auf diese zugreifen können. Doch es gelingt mir nicht. Wie schaffe ich es, daß ich aus einem anderen Fenster auf die Struktur aus dem Hauptfenster zugreifen kann.


Danke für die Hilfe

bei Antwort benachrichtigen
Dreamforger W.Stecher „Globale Deklaration“
Optionen
---struct.h---------

struct mystructure {
int a;
int b;
};

--------main.cpp---------

#include "struct.h"
mystructure theOne;

void somefunc();

void main()
{
theOne.a = 0;
theOne.b = 10;
somefunc();
/*....*/
}

-------AnyOther.cpp------

#include "struct.h"
extern mystructure theOne; // "hey compiler, da gibts 'ne variable 'theOne', leg sie nicht an"
// stattdessen sag dem linker das er sie nachher unter allen nicht-static variablen findet

void somefunc()
{
theOne.a = theOne.b * theOne.a
}
bei Antwort benachrichtigen