Zeichenfolgenkonvertierungs-Makros
Diese Makros stellen Zeichenfolgenkonvertierungsfeatures bereit.
ATL- und MFC-Zeichenfolgenkonvertierungsmakros
Die hier besprochenen Zeichenfolgenkonvertierungsmakros sind sowohl für ATL als auch für MFC gültig. Weitere Informationen zur MFC-Zeichenfolgenkonvertierung finden Sie unter TN059: Verwenden von MFC MBCS/Unicode-Konvertierungsmakros und MFC-Makros und Globalen.
DEVMODE- und TEXTMETRIC-Zeichenfolgenkonvertierungsmakros
Diese Makros erstellen eine Kopie einer DEVMODE - oder TEXTMETRIC-Struktur und konvertieren die Zeichenfolgen innerhalb der neuen Struktur in einen neuen Zeichenfolgentyp. Die Makros weisen Speicher auf dem Stapel für die neue Struktur zu und geben einen Zeiger auf die neue Struktur zurück.
MACRONAME( address_of_structure )
Hinweise
Zum Beispiel:
DEVMODEW* lpw = DEVMODEA2W(lpa);
und:
TEXTMETRICW* lptmw = TEXTMETRICA2W(lptma);
In den Makronamen befindet sich der Zeichenfolgentyp in der Quellstruktur links (z . B. A), und der Zeichenfolgentyp in der Zielstruktur befindet sich rechts (z . B. W). Ein Steht für LPSTR, OLE steht für LPOLESTR, T steht für LPTSTR, und W steht für LPWSTR.
Daher kopiert DEVMODEA2W eine DEVMODE
Struktur mit LPSTR-Zeichenfolgen in eine DEVMODE
Struktur mit LPWSTR-Zeichenfolgen, TEXTMETRICOLE2T kopiert eine TEXTMETRIC
Struktur mit LPOLESTR-Zeichenfolgen in eine TEXTMETRIC
Struktur mit LPTSTR-Zeichenfolgen usw.
Die beiden in der DEVMODE
Struktur konvertierten Zeichenfolgen sind der Gerätename (dmDeviceName
) und der Formularname (dmFormName
). Die DEVMODE
Zeichenfolgenkonvertierungsmakros aktualisieren auch die Strukturgröße (dmSize
).
Die vier in der TEXTMETRIC
Struktur konvertierten Zeichenfolgen sind das erste Zeichen (tmFirstChar
), das letzte Zeichen (tmLastChar
), das Standardzeichen (tmDefaultChar
) und das Umbruchzeichen (tmBreakChar
).
Das Verhalten der DEVMODE
Makros und TEXTMETRIC
der Zeichenfolgenkonvertierung hängt ggf. von der Compilerdirektive ab. Wenn die Quell- und Zieltypen gleich sind, findet keine Konvertierung statt. Compilerdirektiven ändern T und OLE wie folgt:
Geltende Compiler-Anweisung | T wird zu | OLE wird zu |
---|---|---|
none | A | W |
_UNICODE | W | W |
OLE2ANSI | A | A |
_UNICODE und OLE2ANSI | W | A |
In der folgenden Tabelle sind die DEVMODE
Makros und TEXTMETRIC
Zeichenfolgenkonvertierungsmakros aufgeführt.
DEVMODE -Makro |
TEXTMETRIC -Makro |
---|---|
DEVMODEA2W | TEXTMETRICA2W |
DEVMODEOLE2T | TEXTMETRICOLE2T |
DEVMODET2OLE | TEXTMETRICT2OLE |
DEVMODEW2A | TEXTMETRICW2A |