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???
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]
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden