Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 |