TinTin Geschrieben 13. Mai 2005 Geschrieben 13. Mai 2005 folgene Situation: DWORD WINAPI CMp3ListDlg::threadprc(LPVOID parameter) { CString filter(".mp3"),csMeld; csMeld = _T("Suche Dateien, Bitte Warten ..."); SetDlgItemText(IDC_STATIC_LIST_FILE,csMeld); int iFound = searchDir(m_csStartPath,filter); csMeld.Format(_T("Gefundene Dateien : %d"),iFound); SetDlgItemText(IDC_STATIC_LIST_FILE,csMeld); } DWORD WINAPI threadprc(LPVOID); DWORD dwThreadId; HANDLE hThread = CreateThread( NULL, 0, threadprc, NULL, 0, &dwThreadId ); und ich bekomme folgenden fehler D:\__projekte\_mp3\mp3List\mp3ListDlg.cpp(399) : error C2664: 'CreateThread' : Konvertierung des Parameters 3 von 'unsigned long (void *)' in 'unsigned long (__stdcall *)(void *)' nicht moeglich Was sehe ich nicht??? Was mach ich falsch??? Zitieren
Manfred.Becker Geschrieben 17. Mai 2005 Geschrieben 17. Mai 2005 Hi TinTin, du verwendest eine Klassenfunktion als Thread-Funktion. Das geht so nicht. Eine Thread-Funktion muss global sein. Entweder du deklarierst deine Klassenfunktion static (damit wird sie global), static DWORD WINAPI threadprc(LPVOID parameter); oder nimmst sie ganz raus aud der Klasse und machst einfach 'ne globale Funktion daraus. DWORD WINAPI threadprc(LPVOID parameter) { ... }[/PHP] Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.