TripleD Geschrieben 22. Juli 2004 Geschrieben 22. Juli 2004 Hallo, so jetzt hab ich wieder mal ein Problem, bei dem ich nicht weiter komm. Wie bekomme ich es hin, dass er mir folgenden Code annimmt? m_ctlMsg.AddString(str+":"+m_strMsg); Hoffe es weiß einer Rat. PS: Programmiere unter XP mit VC++ 6 / MFC Gruß TripleD Zitieren
Crush Geschrieben 22. Juli 2004 Geschrieben 22. Juli 2004 Die Zwei Strings sind als Parameter bestimmt als Zeiger referenziert und werden auch über Zeiger addiert (auch das ";", weil dieser String beim Compilen mit anderen Strings an einer festen Stelle im Data-Segment abgelegt wird). AddString() erwartet - je nach Implementierung - eine einzige Referenz auf einen String. Die Zeigerliste in der Funktion erzeugt leider keinen einzelnen Zeiger. Die Lösung wäre in diesem Fall: Einfach einen 3. String erzeugen und diesen der Funktion übergeben. Es könnte sein, daß es aber auch Funktioniert, wenn Du von m_strMsg den String über eine Funktion, wie z.B. m_strMsg.GetBuffer() oder evtl. mit dem Cast (LPCSTR)m_strMsg abrufst. Kommt drauf an, von welcher Klasse m_strMsg ist. Zitieren
Guybrush Threepwood Geschrieben 22. Juli 2004 Geschrieben 22. Juli 2004 Sind str und m_strMsg char arrays oder CStrings? Und welchen Datentyp erwartet AddStrig als Parameter? Zitieren
Crush Geschrieben 23. Juli 2004 Geschrieben 23. Juli 2004 Oder aber: Das ":" wird vermutlich nicht als String erkannt. Da müßte man dann den Operator entweder überschreiben oder einen CString draus konstruieren. Zitieren
TripleD Geschrieben 23. Juli 2004 Autor Geschrieben 23. Juli 2004 Danke für eure Tips, ich hab das Problem gelöst bekommen. Hab einfach eine neue String-Variable genommen und in diese meine zwei Strings geschrieben. Und diese dritte dann übergeben. Funktioniert jetzt wie es soll. Gruß TripleD 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.