Frage

Dies scheint ein ziemlich Softball Frage, aber ich habe immer eine harte Zeit, diese Funktion suchen, weil es scheint, es gibt so viele Variationen in Bezug auf die Referenzierung von Saibling und TCHAR.

War es hilfreich?

Andere Tipps

Der einfachste Weg ist es, die Umwandlung von Makros zu verwenden:

  • CW2A
  • CA2W
  • etc ...

MSDN

TCHAR ist eine Microsoft-spezifische typedef entweder char oder wchar_t (ein breites Zeichen).

Die Umstellung auf char hängt davon ab, welche dieser es tatsächlich ist. Wenn TCHAR tatsächlich ein Zeichen ist, dann können Sie einen einfachen Guss tun, aber wenn es wirklich ein wchar_t ist, müssen Sie eine Routine zwischen Zeichensätzen konvertieren. Siehe die Funktion MultiByteToWideChar ()

Es gibt ein paar Antworten in diesem Beitrag als gut, vor allem, wenn Sie für eine Cross-Plattform-Lösung suchen:

UTF8 zu / von breiter char Umwandlung in STL

  
    

Obwohl in dieser besonderen Situation denke ich, die Tchar ein breites Zeichen werde ich nur die Umwandlung tun müssen, wenn es nicht ist. welche ich muss irgendwie überprüfen.

  
if (sizeof(TCHAR) != sizeof(wchar_t))
{  .... }

Die kühle Sache über das heißt beide Größen der equals Konstanten sind, was bedeutet, dass der Compiler behandelt (und entfernen) der if (), und wenn sie gleich sind, entfernen Sie alles, was in den geschweiften Klammern

Hier ist der CPP-Code, die _TCHAR * argv [] char * argn [].

Duplikate

http://www.wincli.com/?p=72

Wenn Sie alten Code auf Windows Annahme, einfache Verwendung define im Code als optional erwähnt.

Sie können in Ihrem Code setzen Bedingung

ifdef _UNICODE

{// Kocht TCHAR ist breit CHAR} else {// Kocht TCHAR CHAR}

Ich weiß, das ein alter Thread ist, aber es hat mir nicht die „richtige“ Antwort, so dass es jetzt bin hinzugefügt wird.

Der Weg, dies jetzt zu tun scheint, ist die TEXT-Makro zu verwenden. Das Beispiel für Findfirstfile an Msdn weist darauf hin. http://msdn.microsoft .com / de-de / library / windows / Desktop / aa364418% 28v = VS.85% 29.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top