Undefiniertes Symbol "SecondProcess"
-
Hallo,
im Quelltext von Form1 möchte ich einen Thread manchmal anhalten u. dann wieder weiterlaufen lassen.
Mit folgendem Code erzeuge ich zu Beginn des Programms den Thread und starte diesen.TPing *SecondProcess = new TPing(true); // Thread erzeugen SecondProcess->Priority = tpLower; // niedrigere Priorität setzen SecondProcess->Resume(); // Thread jetzt ausführenDies funktioniert auch so.
Aber: Trage ich jedoch in einer eigens erstellten Funktion "void __fastcall NextPing()" den BefehlSecondProcess->Suspend(); // PingThread jetzt anhaltenein, erkennt er diese nicht, obwohl ich in der Form1.h unter public die Deklaration "void __fastcall NextPing(void)" eingetragen habe. Es erfolgt die Fehlermeldung Undefiniertes Symbol "SecondProcess".
Was habe ich falsch deklariert?
-
Hallo
so wie der Ausschnitt aussieht, ist SecondProcess lokal in einer Funktion und deshalb in anderen Funktionen nicht mehr gültig. Das muß also auch ein Member von Form1 werden.
bis bald
akari
-
In der Thread-Unit (unit3.h) sieht die Deklaration so aus:
class TPing : public TThread { private: protected: void __fastcall Execute(); public: __fastcall TPing(bool CreateSuspended); };Wie soll ich denn da ein "Member" von Form1 draus machen?
-
Hallo
die Deklaration von SecondProcess (nicht von TPing) muß aus der Funktion in die Deklaration von TForm1 verschoben werden. Also
[cpp]class TForm1
{
...
protected :
TPing SecondProcess;
public :
__fastcall TForm1(TComponent Owner);
};[/cpp]bis bald
akari
-
Danke.. aber es funktioniert immer noch nicht:
Jetzt kommt bei der Zeile
TPing *SecondProcess = new TPing(true); // Thread erzeugendie Meldung E2451 Undefiniertes Symbol 'SecondProcess' und bei der neuen Zeile
protected : TPing *SecondProcess;kommt E2303 Typname erwartet! Das "TPing" scheint ihm da nicht zu schmecken.
-
Hallo
naja, also darauf kannst du auch selber kommen :
Die Klasse TPing muß von Form1.h aus auch zu erreichen sein.
Also dort ganz oben nach den anderen Includes#include "unit3.h"und dann beim Erstellen der Instanz in einer Funktion
SecondProcess = new TPing(true); // Thread erzeugenSchau dir mal ein Tutorial zum Thema C++, OOP und BCB an, siehe oben rechts das Menü
bis bald
akari