文字列変換に関するマクロ

ここでは説明の文字列変換マクロは ATL と MFC の両方に対して有効です。MFC の文字列変換の詳細についてを参照してくださいTN059: MFC MBCS/Unicode 変換マクロを使用してMFC マクロとグローバル関数

文字列変換マクロの構文です。:

MACRONAME ( string_address

たとえば:

A2W(lpa)

マクロ名、ソース文字列型を左側 (たとえば、 A) は、先の文字列型 (たとえば、 W) の右側にあります。 LPSTROLELPOLESTRLPTSTRTWLPWSTR略。

したがって、 A2W LPSTR LPWSTRに変換、 OLE2T LPOLESTR LPTSTRのように変換。

変換先の文字列変換先の型がBSTRの場合 _alloca、以外を使用して作成されます。関数が戻るときに、それ自動的にクリーンアップされるように _allocaを使用して、スタックからのメモリを割り当てください。

マクロ名ではCがある場合は、マクロをconst文字列に変換します。たとえば、 W2CA LPWSTR LPCSTRに変換します。

特価;ATL 文字列変換マクロを使用すると、コンパイラ エラーを避けるためにUSES_CONVERSIONマクロ、関数の先頭を指定します。たとえば(&N):

void func (LPSTR lpsz){特価;USES_CONVERSION;...LPWSTR x A2W(lpsz) =・ ・何か x...}(&N)

存在する場合、コンパイラ ディレクティブで ATL 文字列変換マクロの動作によって異なります。ソースと変換先の型が同じ場合、変換は場所をとらない。コンパイラ ディレクティブTおよびOLEをとおり変更します。:

コンパイラ ディレクティブの効果 T になります。 OLE になります。
なし A W
_UNICODE W W
OLE2ANSI A A
_UNICODEOLE2ANSI W A

次の表に ATL 文字列変換マクロ。

ATL 文字列変換マクロ

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 S20 W2T

ATL マクロとグローバル関数

参照してください。

DEVMODE と TEXTMETRIC の文字列変換マクロ

Index