wxString in va_arg() benutzen
-
Hallo zusammen..
Habe gerade folgenden funktionierenden Quelltext geschrieben:
void BasicFrame::ParaMitWxString(int anzahl, ...) { va_list para; va_start(para, anzahl); for (int i=0; i<anzahl; i++) { wxString* t = va_arg(para, wxString*); *mycont << *t << _T("\n"); } va_end(para); }
Dieser funktioniert soweit. Wenn ich es folgendermaßen aufrufe:
wxString* n = new wxString(_T("blabla - 1")); wxString* m = new wxString(_T("blabla - 2")); ParaMitWxString(2, n,m);
Würde die funktion allerdings gerne wie folgt aufrufen:
ParaMitWxString(2, _T("wxString 1"), _T("wxString 2"));
Bekomme aber dabei die Variablen nicht in die Funktion rüber.
Bzw. bekomm einen Programmausstieg wenn ich den Quelltext wie folgt abändere. (*t in t) geändertvoid BasicFrame::ParaMitWxString(int anzahl, ...) { va_list para; va_start(para, anzahl); for (int i=0; i<anzahl; i++) { wxString t = va_arg(para, wxString); *mycont << t << _T("\n"); } va_end(para); }
Kann ich das 'va_arg' Macro überhaupt benutzen wenn ich direkt einen wxString anstelle eines *wxString übergeben möchte.. ??
-
Ja die Lösung so simple. Vergaß irgendwie das _T("wxString 1") ja kein wxString Object ist, sonder eigentlich in dem Moment ein wxChar*.
Also hab das mal jetzt ausgetauscht und es funzt jetzt natürlich. Hier der geänderte Quelltext, falls auch mal wer anders so auf der Leitung sitzt wie ich gerade eben...
void BasicFrame::ParaMitWxString(int anzahl, ...) { va_list para; va_start(para, anzahl); for (int i=0; i<anzahl; i++) { wxChar* t; t = va_arg(para, wxChar*); wxString r(t); *mycont << r << _T("\n"); } va_end(para); }