CStringArray aus Funktion erhalten



  • Hallo,

    wie kann ich in einer Funktion einen CStringArray zurückgeben? Ich erhalte ständig Fehlermeldungen. Was mache ich falsch?

    Mein Code:

    CStringArray stdfunctions::string2array(CString String,char Trennzeichen)
    {
    	CStringArray straArray;
    	CString Buffer;
    	int x,y;
    
    	y = 0;
    	String.Trim();
    	while (String.GetLength() > 0)
    	{
    		y++;
    		Buffer = String;
    		x      = String.Find(Trennzeichen);
    		if (x > 0) 
    		{ 
    			Buffer.Delete(x,Buffer.GetLength()); 
    			String.Delete(0,x+1);
    		}
    		else
    		{
    			String = "";
    		}
    		straArray[y] = Buffer;
    	}
    
    	return straArray;
    }
    

    Daraufhin erhalte ich folgende Fehlermeldung:

    error C2558: class 'CStringArray' : Kein Kopierkonstruktor verfügbar oder der Kopierkonstruktor is als 'explicit' deklariert

    Leider kann ich damit und was die Hilfe mir dazu sagt nichts anfangen.



  • Mach doch eine Referenz als weiteren Parameter oder gib einen Zeiger zurück.



  • estartu_de schrieb:

    Mach doch eine Referenz als weiteren Parameter ...

    Meinst Du damit, dass ich einen veränderbaren leeren CStringArray mitübergebe und diesen in der Funktion fülle?

    Werde ich mal versuchen. Danke!

    PS: Das mit dem Zeiger hatte ich schon probiert. Hat leider auch nicht geklappt.

    Gruß,

    Elayas



  • Genauso war das gedacht. 🙂

    Zu dem nicht funktionierten Zeiger:
    Hast du den denn auch mit new angelegt? (Und später brav wieder gelöscht?)


Anmelden zum Antworten