Veröffentlicht 22. Juli 200421 j 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
22. Juli 200421 j 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.
22. Juli 200421 j Sind str und m_strMsg char arrays oder CStrings? Und welchen Datentyp erwartet AddStrig als Parameter?
23. Juli 200421 j Oder aber: Das ":" wird vermutlich nicht als String erkannt. Da müßte man dann den Operator entweder überschreiben oder einen CString draus konstruieren.
23. Juli 200421 j 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.