Makra konwersji ciągów
Te makra udostępniają funkcje konwersji ciągów.
Makra konwersji ciągów ATL i MFC
Makra konwersji ciągów omówione tutaj są prawidłowe zarówno dla ATL, jak i MFC. Aby uzyskać więcej informacji na temat konwersji ciągów MFC, zobacz TN059: Using MFC MBCS/Unicode Conversion Macros and MFC Macros and MFC Macros and Globals (Używanie makr konwersji MFC MBCS/Unicode) i MFC Macros and Globals (Makra konwersji MFC MBCS/Unicode).
Makra konwersji ciągów DEVMODE i TEXTMETRIC
Te makra tworzą kopię struktury DEVMODE lub TEXTMETRIC i konwertują ciągi w nowej strukturze na nowy typ ciągu. Makra przydzielają pamięć na stosie dla nowej struktury i zwracają wskaźnik do nowej struktury.
MACRONAME( address_of_structure )
Uwagi
Na przykład:
DEVMODEW* lpw = DEVMODEA2W(lpa);
i:
TEXTMETRICW* lptmw = TEXTMETRICA2W(lptma);
W nazwach makr typ ciągu w strukturze źródłowej znajduje się po lewej stronie (na przykład A), a typ ciągu w strukturze docelowej znajduje się po prawej stronie (na przykład W). A oznacza LPSTR, OLE oznacza LPOLESTR, T oznacza LPTSTR, a W oznacza LPWSTR.
W związku z tym DEVMODEA2W kopiuje DEVMODE
strukturę z ciągami LPSTR do DEVMODE
struktury z ciągami LPWSTR, TEXTMETRICOLE2T kopiuje TEXTMETRIC
strukturę z ciągami LPOLESTR do TEXTMETRIC
struktury z ciągami LPTSTR itd.
Dwa ciągi przekonwertowane w DEVMODE
strukturze to nazwa urządzenia (dmDeviceName
) i nazwa formularza (dmFormName
). DEVMODE
Makra konwersji ciągów aktualizują również rozmiar struktury (dmSize
).
Cztery ciągi przekonwertowane w TEXTMETRIC
strukturze są pierwszym znakiem (tmFirstChar
), ostatnim znakiem (tmLastChar
), znakiem domyślnym (tmDefaultChar
) i znakiem przerwania (tmBreakChar
).
Zachowanie DEVMODE
makr konwersji ciągów i TEXTMETRIC
zależy od dyrektywy kompilatora, jeśli istnieje. Jeśli typy źródłowe i docelowe są takie same, nie ma konwersji. Dyrektywy kompilatora zmieniają język T i OLE w następujący sposób:
Dyrektywa kompilatora w mocy | T staje się | Obiekt OLE staje się |
---|---|---|
Brak | A | W |
_UNICODE | W | W |
OLE2ANSI | A | A |
_UNICODE i OLE2ANSI | W | A |
W poniższej tabeli wymieniono makra DEVMODE
konwersji ciągów i TEXTMETRIC
.
DEVMODE Makro |
TEXTMETRIC Makro |
---|---|
DEVMODEA2W | TEXTMETRICA2W |
DEVMODEOLE2T | TEXTMETRICOLE2T |
DEVMODET2OLE | TEXTMETRICT2OLE |
DEVMODEW2A | TEXTMETRICW2A |