CrateThread



  • Hi Leute,
    Wie der Tiel es schon sagt, betrifft mein Problem nicht nur die WinAPI sondern auch den Borland Builder aber ich glaub das Thema passt hier besser rein.

    Nun aber zum Problem:
    Wenn ich einen Thread mit CreateThread erzeuge, und die ThreadFunc-Function Außerhalb der TForm-Klasse deklariere, dann läuft alles wunderbar.
    Wenn ich aber die Funktion in der TForm-Klasse deklariere, erhalt ich immer ne Fehlermeldung:

    *E2034 Konvertierung von 'unsigned long (__stdcall * (_closure )(void *))(void *)' nach 'unsigned long (__stdcall *)(void )' nicht möglich
    und
    *E2342 Keine Übereinstimmung des Typs beim Parameter 'lpStartAddress' ('unsigned long (__stdcall *)(void )' erwartet, 'void' erhalten)

    Könnte mir da jemand weiterhelfen?



  • Ist die Methode als static deklariert?



  • Oh man, das kann doch ech nicht wahr sein.
    Das steht aber in dem Windows SDK nicht mit bei das man die als static deklarieren muss.

    Vielen dank auch CMatt.



  • Nimm nicht CreateThread, in C/C++ Programmen ist diese Funktion ziemlich fehl am Platz. Dein Compiler stellt bestimmt eine eigene beginthread-Funktion bereit. Beim VC++ heißt diese z.B. _beginthreadex.



  • Hi cd9000,
    hab nachgesehen, es gibt tatsächlich ne Funktion BeginThread. Sie soll sicherer sein. Danke für den Tipp


Anmelden zum Antworten