Wie konvertiere ich von _TCHAR * nach char *, wenn ich C ++ Args mit variabler Länge verwende?

8

Wir müssen eine format _TCHAR * string und eine Anzahl char * Zeichenfolgen in eine Funktion mit args mit variabler Länge übergeben:

%Vor%

So kann es so genannt werden:

%Vor%

Offensichtlich wäre eine einfache Lösung die Verwendung von _TCHAR anstelle von char, aber diesen Luxus haben wir leider nicht.

Wir müssen das mit va_start usw. verwenden, damit wir einen String formatieren können:

%Vor%

Leider können wir das nicht verwenden, weil es uns diesen Fehler gibt:

%Vor%

Ich denke wir müssen unseren char * in _TCHAR * umwandeln - aber wie?

    
Nick Bolton 23.10.2009, 12:49
quelle

4 Antworten

3

Verwenden Sie% hs oder% hS anstelle von% s. Dies wird dazu führen, dass die Parameter in Ansi - und Unicode - Versionen der printf () - Stilfunktionen als char * interpretiert werden, dh:

%Vor%     
Remy Lebeau 23.10.2009, 23:53
quelle
2

Normalerweise sieht es so aus:

%Vor%

Ihre Frage ist nicht ganz klar. Wie ist Ihre Funktion implementiert und wie verwenden Sie sie?

    
Kirill V. Lyadvinsky 23.10.2009 13:16
quelle
1

Hier war meine Lösung - ich begrüße Verbesserungsvorschläge!

%Vor%     
Nick Bolton 24.10.2009 10:18
quelle
0

Dies ist etwas, das ich vorher benutzt habe, um ein TCHAR in char umzuwandeln, hoffe es hilft, obwohl ich nicht wirklich nach Optimierung suchte, also ist es nicht der schnellste Weg .. aber es hat funktioniert!

%Vor%     
David Menard 23.10.2009 13:55
quelle

Tags und Links