Wie cout, std::basic_string<TCHAR>
Ich versuche, cout ein basic_string<TCHAR>
. Aber cout wirft Fehler. Kann ich wissen, wie zu tun, dass
- Können Sie einige Beispiel-code und die genaue Fehlermeldung, die Sie bekommen?
- Beim Umgang mit einem Fehler, anzugeben, was Sie erreichen wollen, den genauen code, wo der Fehler gemeldet wird und der compiler/linker-Fehler. Diese information wird anderen helfen, helfen Sie.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als dauphic sagte
std::wcout
ist für wide-strings undstd::cout
für engen. Wenn Sie wollen in der Lage sein zu kompilieren für eine Art von string (TCHAR
gemeint ist, um diese Art der Sache leichter) sowas manchmal macht das Leben leichter:In diesem Ort Verwendung tcout statt.
TCHAR
ist eine winapi definieren, die für die Charakter-Typ für Ihre Anwendung eingesetzt. Wenn Sie den Zeichensatz als multi-byte-Zeichen ist, wirdchar
. Wenn Sie festgelegt haben, Unicode, es wirdwchar_t
.Wenn es
wchar_t
verwenden, benötigen Siestd::wcout
. Ansonsten, einfach nurstd::cout
sollte in Ordnung sein.In der Regel hilft es auch erklären, welche Fehler sind Sie immer, aber die meisten wahrscheinlich, dass Sie versuchen, fügen Sie ein
std::basic_string<wchar_t>
instd::cout
, und es ist wahrscheinlich nicht einoperator<<
überlastung für, die.Als @Bo Persson erwähnt, eine andere Definition
tcout
Typ wäre mit Referenzen mit der richtige stream-Typen. Obwohl es ein paar mehr Dinge zu beachten, wenn dies zu tun, als Sie einfach am Ende mit linker-Probleme, die durch mehrfache oder fehlende Definitionen.Was für mich funktioniert ist das deklarieren diese Typen als externe Referenzen im Kopf und definieren Sie einmal in einer Quellcode-Datei. Dies funktioniert auch, um eine vorkompilierte Headerdatei (stdafx).
Header
Umsetzung