WinAPI Threads in Borland
-
ich versuch grad einen WinAPI Thread in Borland zuerzeugen, das Beispiel lautet
HANDLE MyThread = CreateThread(NULL, 0, MyThreadFuction, NULL, NULL, &ID); DWORD WINAPI MyClass::MyThreadFuction(LPVOID Unused){ doSth(); }leider meckert er mir was vor von wegen
[C++ Fehler] WinThreads.cpp(24): E2034 Konvertierung von 'unsigned long (__stdcall * (_closure )(void *))(void *)' nach 'unsigned long (__stdcall *)(void *)' nicht möglich [C++ Fehler] WinThreads.cpp(24): E2342 Keine Übereinstimmung des Typs beim Parameter 'lpStartAddress' ('unsigned long (__stdcall *)(void *)' erwartet, 'void' erhalten) [C++ Fehler] WinThreads.cpp(24): E2034 Konvertierung von 'long *' nach 'unsigned long *' nicht möglich [C++ Fehler] WinThreads.cpp(24): E2342 Keine Übereinstimmung des Typs beim Parameter 'lpThreadId' ('unsigned long *' erwartet, 'long *' erhalten)ich hab diverse casts und veränderungen an der deklaration mit sehr wenig erfolg durchgeführt, irgendwie blick ich das nicht so recht
ich habs auch mit
LPTHREAD_START_ROUTINE
und
SEC_THREAD_START
versucht
-
Hallo
Da die WinAPI eine C-Schnittstelle ist und C keine Klassen kennt muß Thread-Funktion eine statische Funktion sein, keine Membermethode einer Klasse. Die Instanz von MyClass kannst du einem anderem Parameter als Data übergeben, das bekommst du dann in der Thread-Funktion als Parameter den du jetzt als unused benannt hast.
Oder benutzt gleich TThread, da ist das Problem schon gelöst.bis bald
akari
-
TThread darf ich nicht verwenden (wegen eventueller compilerumstellung usw.)
danke für die hilfe ich werds mal testenThx for Help klappt danke _