Feld und Zeigertyp error



  • Wieso geht das nicht? Ist das vielleicht weil die die Klasse "static" ist?
    nIndex hat kan den Wert 0 oder 1 haben. Wie kann ich eine gültige Referenz deklariere?

    die Variablen definition

    private:
    int nIndex, BOOL bSuspend
    CWinThread* m_pSpinThread[2];
    

    Klassendefinition

    public:
    	static void SuspendSpinner(int nIndex, BOOL bSuspend);
    

    die Fehlermeldung

    H:\prod\4282\MVC-Test\Tasking\TaskingDoc.cpp(208) : error C2597: Ungueltige Referenz auf ein Datenelement 'CTaskingDoc::m_pSpinThread' in  einer statischen Member-Funktion
    H:\prod\4282\MVC-Test\Tasking\TaskingDoc.cpp(208) : error C2109: Index benoetigt ein Feld oder einen Zeigertyp
    

    der Code

    void CTaskingDoc::SuspendSpinner(int nIndex, BOOL bSuspend)
    {
    
    	// Thread anhalten?
    	if (!bSuspend)
    	{
    		// Ist Zeiger für den Thread gültig?
    		if (m_pSpinThread[nIndex])
    		{
    			// Handle für den Thread holen
    			HANDLE hThread = m_pSpinThread[nIndex]->m_hThread;
    

    weitere Verwendung

    // Thread starten, Zeiger auf Fächer übergeben
    m_pSpinThread[nIndex] = AfxBeginThread(ThreadFunc,(LPVOID)&m_cSpin[iSpnr]);
    

    gruss und danke



  • hat erstmal nix speziell mit MFC zu tun^^

    Eine statische Methode ist an eine Klasse gebunden. Membervariablen sind immer an eine Instanz einer Klasse gebunden. Sprich: in einer statischen Methode darf man keine nicht-statischen Member der Klasse benutzen. Ist ja auch logisch. Statisch heißt, das liegt einmal pro Klasse vor, alles anderen Daten liegen für jede Instanz vor. Ich brauche also eine Instanzm und die habe ich in einer statischen Methode nicht(Stichwort this)


Anmelden zum Antworten