TCriticalSection



  • Hi,
    Wie kann ich TCriticalSection verwenden?

    Ich habe ein Programm mit dem BCB6 geschrieben, welches 2 Threads hat, den Main Thread und a Thread Object. Ich verwende den Main Thread um ein paar Berechnungen durchzufuehren und das Thread Object um Daten vom Comport zu senden und zu empfangen.

    Nun wuerde ich gerne, wenn ich Daten vom Comport lese oder schreibe, den anderen Thread mit TCriticalSection blockieren.

    In main.cpp ich deklarierte das folgende:
    TCriticalSection* ThreadBlocker=new TCriticalSection();

    In thread.cpp ich deklarierte das folgende:
    extern TCriticalSection* ThreadBlocker;

    Wenn ich compiliere bekomme ich den folgenden Fehler:
    [C++ Error] Thread.cpp(12): E2141 Declaration syntax error

    TCriticalSection ist eine Klasse. Muss ich dann in thread.cpp es so einfuegen: extern class TCriticalSection* ThreadBlocker; ?

    Was mache ich falsch?

    Ich bedanke mich fuer alle Antworten im voraus.

    Gruss,
    Ronald



  • Äh sehr grad keinen Fehler... ist es möglich, dass eine Zeile vorher ein Fehler existiert?

    -junix



  • Nee, die Zeile davor ist ok. Ich denke, es muss was mit der Deklaration zu tun haben.

    Ronald



  • Die Header sind included?
    Zum Declaration Syntax Error kommen normalerweise noch mehr informationen? (z.B. Unbekannter Typ, etc)

    -junix



  • ja, die Header sind included.
    Ronald



  • Ich habs. Ich habe vergessen, die unit SyncObjs.hpp in thread.cpp einzufuegen. Jetzt funktioniert.

    Nochmals danke.

    Gruss,
    Ronald


Anmelden zum Antworten