eventlog mit hilfe von tevent lehren.
-
hey. ich hab folgendes problemm:
ich will mit hilfe von tevent auf das windows-internen handle "ClearEventLog" zugreiffen. hab aber absolut keinen plan wie ich das anstellen soll. mir wurde der tip gegeben die handles in einen eigenen thread zu setzen. aber leider happerts auch da wieder bei mir und ich bekomm es nicht hin nen tthread-objekt zu erzeugen. WER KANN MIR HELFEN?thx im vorraus. ZEN
-
Die Klasse TEvent dient dazu um Threads untereinander zu syncronisieren. Sie kapselt die API soweit, damit Dir z.B. folgende Aufrufe erspart bleiben:
HANDLE stop_event; stop_event = CreateEvent ( NULL, true, false, NULL ); CloseHandle( stop_event ); bool TThread_DBListe::stopped ( unsigned u ) const { return ( WAIT_OBJECT_0 == WaitForSingleObject ( stop_event , u ) ); } //usw.
Wenn Du aber, wie Du ja selber schreibts, mit dem Erzeugen und Arbeiten mit Threads keinerlei Erfahrung hast, wirst Du damit nichts anfangen können. Ich empfehle Dir Dich zuerst einmal mit Threads auseinanderzusetzen (ich habe in diesem Forum schon einige Fragen dazu beantwortet) und wenn Du damit klar kommst, macht es sicherlich Sinn über Threadsyncronisation weiter zu sprechen.
Ich hoffe, Du siehst das auch so.Gruß
Gerhard
-
jep. seh ich auch so. mein problem ist das ich in der bc++b-hilfe nich wirklich einen anfang zu diesem thema finde. immer wenn ich thread eingebe wird erwartet das ich weiss was das ist. und das weiss ich halt leider noch nicht. und da liegt halt ein problem. die hilfe ist da nicht sehr übersichtlich. oder ich bin einfach nur blind. kannst du mir sagen wo ich dann am besten anfange?
-
Also Mr. LLPresident,
einmal gibt es im CBuilder im Verzeichnis Examples/Apps/Threads ein recht gutes Beispiel.
Zum anderen will ich auch nicht die alte Laier von wegen Google anbringen (ist aber immer hilfreich) und Dir als Einstieg die folgende Seite mit einem Download zu Thread
empfehlen:
http://www.thebits.org/tutorials/general.asp#threadsGruß
Gerhard
-
cool. thx. wie schon gesagt. wenn ich einen anfanh habe mit dem ich etwas anfangen kann macht es sich für mich leichter die zusammenhäge zu verstehen.
-
@gerhard:ist das tut was ich von der site die du mir genant hast auch 100% mit dem builder 5.0 lauffähig? weil ab step4 bekomm ich ein problem. aus irgent welchen gründen erlaub mir der pc dann nicht mehr den button zu drücken. scheint so als währe er deaktiviert. woran kann das liegen? thx im vorraus.
-
irgentwie rall ich heut nix. hab mir treads jetz angesehn und weiss worums geht. werd ich auch in meinem progie einsetzen. will erst mal nen kleines test-prog schreiben mit dem ich auf ne *.evt datei zugreife. aber irgentwie komm ich nich wirklich klar.
quelltext sieht wie folgt aus:// header: class TForm1 : public TForm { __published: // Von der IDE verwaltete Komponenten void __fastcall FormCreate(TObject *Sender); private: // Anwender-Deklarationen public: // Anwender-Deklarationen __fastcall TForm1(TComponent* Owner); __fastcall TEvent(Windows::PSecurityAttributes EventAttributes, bool ManualReset, bool InitialState, const System::AnsiString Name); }; // prog: void __fastcall TForm1::FormCreate(TObject *Sender) { TEvent *NewTEvent; NewTEvent = new TEvent(OpenEventLog,true, true, System::OpenEventLog); }
so. aber wenn ich das so compilire jammert er rum und gibt mir diese fehlermeldungen:
undiefienirtes Symbol NewTEvent; //bezieht sich auf TEvent *NewTEvent;
Typname erwarrtet //die zweite zeile
in anweisung fehlt ; //die zweite zeilewer kann mir erklären warum er das macht?ist doch richtig deklariert die variable NewTEvent oder nicht? hm.
thx schon mal.Edit:
Bitte die Code-Tags benutzen. Danke!
-
ok.ich bin doof. hab im header ne funktion erstellt. wolte aber auf eine windowsfunktion zugreiffen. hab das auch geschaft. problemm ist bloss das ich nicht wirklich weiss wie ich ihm sage das er die methode openeventlog benutzen soll. kann mir wer helfen?
quelltext is noch immer wie oben(blos diesmal ohne den header und es steht am anfang und am ende statt openeventlog NULL).
thx wieder mal.