Ciąg konwersja makra

Makra konwersji ciągów, omówione powyżej są ważne dla ATL i MFC. Aby uzyskać więcej informacji na temat konwersji ciągu MFC, zobacz TN059: przy użyciu MFC MBCS/Unicode konwersja makra i makra MFC i Globals.

Składnia makra Konwersja ciągu jest:

Parametr NAZWA_MAKRA ( string_address )

Na przykład:

A2W(lpa)

Nazwy makr typu ciąg źródłowy jest po lewej stronie (na przykład A) i typu Ciąg docelowego jest po prawej stronie (na przykład W.). A skrótem LPSTR, OLE podpórek LPOLESTR, T podpórek LPTSTRi w podpórek LPWSTR.

W związku z tym A2W konwertuje LPSTR , LPWSTR, OLE2T konwertuje LPOLESTR LPTSTR, i tak dalej.

Ciąg docelowego jest tworzony przy użyciu _alloca, z wyjątkiem sytuacji, kiedy typ docelowy BSTR. Za pomocą _alloca przydzielanie pamięci stosu, tak, że gdy zwraca wartość funkcji, jest automatycznie czyszczona.

Jeśli istnieje c w nazwie makra, makro konwertuje ciąg Stała . Na przykład W2CA konwertuje LPWSTR LPCSTR.

Uwaganbsp;  Użycie makra konwersji ciągu ATL, określić makro USES_CO&NVERSION na początku funkcji w celu uniknięcia błędy kompilatora. Na przykład:

unieważnij PF (LPSTR lpsz)
{
 nbsp; USES_CO&NVERSION;
   ...
   LPWSTR x = A2W(lpsz)
   / / Coś z x
   ...
}

Zachowanie makra konwersji ciągu ATL zależy od dyrektywy kompilatora w efekcie, ewentualne. Jeśli typy źródłowy i docelowy są takie same, bez konwersji ma miejsce. Dyrektyw kompilatora Zmień T i OLE w następujący sposób:

Kompilator dyrektywy w życie Staje się t OLE staje się
brak A W
_UNICODE W W
OLE2ANSI A A
_UNICODE i OLE2ANSI W A

W poniższej tabeli wymieniono makra konwersji ciągu ATL.

ATL ciąg konwersja makra

A2BSTR OLE2A T2A W2A
A2COLE OLE2BSTR T2BSTR W2BSTR
A2CT OLE2CA T2CA W2CA
A2CW OLE2CT T2COLE W2COLE
A2OLE OLE2CW T2CW W2CT
A2T OLE2T T2OLE W2OLE
A2W OLE2W MODUŁ T2W W2T

ATL makra i funkcje globalne

Zobacz też

DEVMODE i TEXTMETRIC ciąg konwersja makra

Index