wxString kan nicht erstellt werden
-
Hallo,
ein einfacheswxString strde = "hallo";
geht nicht.
Die Fehlermeldung lautet:
Fehler: Umformung von »const char [6]« in »wxString« ist nicht eindeutig
/usr/include/wx-2.8/wx/string.h:692: Anmerkung: Kandidaten sind: wxString::wxString(wxChar, size_t) <nahe Übereinstimmung>
/usr/include/wx-2.8/wx/string.h:682: Anmerkung: wxString::wxString(int) <nahe Übereinstimmung>Was mache ich falsch?
-
Eigentlich müsste das so gehen, soweit ich weiß. Ansonsten umschließe deinen String einfach mit wxT(), dann sollte es auf jedenfall gehen und kannst damit Probleme zwischen unicode und Ascii umgehen, glaub ich zumindest
-
Ok das geht! Aber warum?
-
Verwendest du die Unicode Version?
-
Ah da ist ne gute Frage. Ich glaube ein wxString erwartet einen wxChar* keinen char* . Das hat mit den unicode Sachen zu tun, bin da aber nicht tief genug frin um es dir zu erklären. Ich hab mir einfach angewöhnt, jeden String mit wxT() zu umschließen und dann läufts auch. Ich empfehle dir, wenn du genaueres Wissen willst mal in der Doku zu wxWidgets nachzulesen. Da wird es meine ich genau erklärt. Hier ich glaub das erklärts: http://docs.wxwidgets.org/stable/wx_unicode.html#unicode
Grüße
-
phlox81 schrieb:
Verwendest du die Unicode Version?
Wenn ich ehrlich bin weis ich es garnicht.
Da ich unter Linux Programmiere hab ich es einfach mit apt-get installiert.Und das binde ich beim Compilieren ein
g++ -Wall `wx-config --libs` `wx-config --cxxflags` -lcurl -lgssapi_krb5
-
Merkwürdig schrieb:
Ah da ist ne gute Frage. Ich glaube ein wxString erwartet einen wxChar* keinen char* .
Im ANSI-Build ist wxChar auch als char definiert. Im Unicode-Build als wchar_t.
Ganz einfach :).
wxT() sorgt nur dafür, dass im Unicode-Mode das ganze nach Makro-Expansion so aussieht://definiert wird sowas so: #ifdef UNICODE #define wxT(x) L##x #else #define wxT(x) x #endif // So wirds geschrieben: wxString text = wxT("Hello World") // expandiert im // Unicode-Mode zu wxString test = L"Hello World"; // AnsiMod zu wxString text = "Hello World";
Hoffe das hilft das zu verstehen.
rya.