Huhu alles zusammen,
hier kurz die Beschreibung bezüglich meinem Projekt. Ich habe eine VCL Anwendung welche somit die Klasse TForm hat. (Borland Builder C++ 2009).
In der Klasse klappt soweit alles. Erster Punkt wo ich mir nicht zu 100% sicher bin. Ich habe einen Typedef bei "public" definiert für meine vectoren die ich ebenfalls in public verwende.
Ich hatte eine Funktion, die ca. 5 Sekunden ausgeführt wird, die auf diesen typedef zurückgreift. Da durch die 5 Sekunden das ganze Projekt angehalten wird, wollte ich es in einen Task auslagern.
Im C++ Builder gibt es ein Objekt Task mittels dem man mehrere Tasks erstellen kann. Hat soweit auch geklappt.
Ich habe nun zwei Header Files, sowie 2 CPP Files. In der Header File sind die Klassen usw deklariert und in der jeweiligen cpp implementiert.
Dass die beiden Dateien voneinander wissen habe ich in jeder CPP beide Headerfiles eingebunden, und ab dann bekomme ich das Problem mit dem Typedef, dass er zweimal vorkommt.
Als Fehlermeldung spuckt mit der Compiler das hier aus:
Nun meine eigentlichen Fragen. Wo sollte der Typedef stehen? Abhängig vom Ort, wie muss ich ihn aufrufen?
Was ist der einfachste Weg wie ich die Inhalte der Klasse TForm1 and den Thread sozusagen übergebe? Durch Public dachte ich kann ich recht leicht zugreifen, auch wenn die Datenkapselung dann nicht wirklich vorhanden ist.
Bin Dankbar um jede Hilfe!
hier kurz die Beschreibung bezüglich meinem Projekt. Ich habe eine VCL Anwendung welche somit die Klasse TForm hat. (Borland Builder C++ 2009).
In der Klasse klappt soweit alles. Erster Punkt wo ich mir nicht zu 100% sicher bin. Ich habe einen Typedef bei "public" definiert für meine vectoren die ich ebenfalls in public verwende.
Code:
typedef struct {
int DB; // DB Aus Datei
int Byte; // Byte Aus Datei
int Bit; // Bit Aus Datei
string Projekt; // Projekt
string Kurzname; // Kurzname
bool no_nc; // Schliesser Oeffner
// für ReadMix_2
bool Dig_NeuerZustand; // Neuer Zustand
bool Dig_AlterZustand; // Alter Zustand
} DIG_Vector_typ;
Ich hatte eine Funktion, die ca. 5 Sekunden ausgeführt wird, die auf diesen typedef zurückgreift. Da durch die 5 Sekunden das ganze Projekt angehalten wird, wollte ich es in einen Task auslagern.
Im C++ Builder gibt es ein Objekt Task mittels dem man mehrere Tasks erstellen kann. Hat soweit auch geklappt.
Ich habe nun zwei Header Files, sowie 2 CPP Files. In der Header File sind die Klassen usw deklariert und in der jeweiligen cpp implementiert.
Dass die beiden Dateien voneinander wissen habe ich in jeder CPP beide Headerfiles eingebunden, und ab dann bekomme ich das Problem mit dem Typedef, dass er zweimal vorkommt.
Als Fehlermeldung spuckt mit der Compiler das hier aus:
Code:
[BCC32 Fehler] Sourcecode.h(203): E2303 Typname erwartet
[BCC32 Fehler] Sourcecode.h(203): E2139 In Deklaration fehlt ;
[BCC32 Fehler] Sourcecode.h(204): E2303 Typname erwartet
[BCC32 Fehler] Sourcecode.h(204): E2238 Bezeichner 'TForm1:: ::string' mehrfach deklariert
[BCC32 Fehler] Sourcecode.h(203): E2344 'TForm1:: ::string' bereits deklariert
[BCC32 Fehler] Sourcecode.h(204): E2139 In Deklaration fehlt ;
[BCC32 Fehler] Sourcecode.h(212): E2303 Typname erwartet
[BCC32 Fehler] Sourcecode.h(212): E2139 In Deklaration fehlt ;
Nun meine eigentlichen Fragen. Wo sollte der Typedef stehen? Abhängig vom Ort, wie muss ich ihn aufrufen?
Was ist der einfachste Weg wie ich die Inhalte der Klasse TForm1 and den Thread sozusagen übergebe? Durch Public dachte ich kann ich recht leicht zugreifen, auch wenn die Datenkapselung dann nicht wirklich vorhanden ist.
Bin Dankbar um jede Hilfe!