thread funktionen deklarieren?!?



  • Hallo,
    schon wieder ne frage,
    ich hab ein beispiel programm zu threads usw. runtergeladen,

    void CDlgBeepThreadDlg::OnBtnStart() 
    {
    	m_pThread = AfxBeginThread(thrFunc_3, m_hWnd);
    
    }
    
    UINT thrFunc_3(LPVOID pParam)
    {
    	int zahl;
    	zahl = 1;
    	HWND hWnd = (HWND)pParam;
    	while(g_bCont) 
    	{
    		zahl = zahl +1;
    		SendMessage(hWnd, U_WM_BEEP, zahl, 0);
    		Sleep(1000);
    	}
    
    	return 0;
    }
    

    das ist der auzug aus dem .cpp file.
    was ich jetzt nicht verstehe: wo wird die thrFunc_3 declariert?
    im code steht kein nicht

    UINT CThreadBsp::thrFunc_3(LPVOID pParam) {....}
    

    wie macht man denn sowas?
    danke schon mal
    Harald



  • ok, ich kanns selbst beantworten,
    man kann das einfach so machen 😃
    was aber wichtig ist, wenn man die thread funktion nicht im header definiert, dann muss diese funktion im quellcode

    UINT thrFunc_5(LPVOID pParam)
    {
    
    	HWND hWnd = (HWND)pParam;
    	while(g_bCont) 
    	{	
    		SendMessage(hWnd, U_WM_BEEP, 0, 0);
    		Sleep(1000);
    	}
    
    	return 0;
    }
    

    UNBEDINGT vor dem aufruf des threads kommen:

    void CTest2Dlg::OnButton1() 
    {
    	// TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
    	g_bCont = TRUE;
    	m_pThread = AfxBeginThread(thrFunc_5, m_hWnd);
    }
    

    dann ist alles cool!!!


Anmelden zum Antworten