Macros de Conversion de chaîne

Les macros de conversion de chaîne discutées ici sont valables pour ATL et MFC. Pour plus d'informations sur la conversion de chaîne MFC, consultez TN059: à l'aide des Macros MFC MBCS/Unicode Conversion et Macros MFC et Globals.

La syntaxe des macros de conversion de chaîne est:

NOMMACRO ( string_address )

Par exemple:

A2W(lpa)

Dans les noms de macro, le type de chaîne source est sur la gauche (par exemple, A) et le type de chaîne de destination est sur la droite (par exemple, W). A signifie LPSTR, OLE signifie LPOLESTR, T signifie LPTSTRet peuplements w pour LPWSTR.

Ainsi, un LPWSTR A2W convertit un LPSTR , OLE2T convertit un LPOLESTR un LPTSTRet ainsi de suite.

La chaîne de destination est créée à l'aide de _consacré, excepté lorsque le type de destination est BSTR. À l'aide de _consacré alloue de la mémoire de la pile, afin que lorsque votre fonction retourne, il est automatiquement nettoyé.

S'il y a un c dans le nom de la macro, la macro convertit une chaîne const . Par exemple, W2CA convertit un LPWSTR un LPCSTR.

&Notenbsp ;  Lorsque vous utilisez une macro de conversion de chaîne ATL, spécifier la macro USES_CONVERSION au début de votre fonction afin d'éviter les erreurs du compilateur. Par exemple:

vOID func (LPSTR lpsz)
{
 nbsp ; USES_CO&NVERSION ;
   ...
   LPWSTR x = A2W(lpsz)
   / / Faire quelque chose avec x
   ...
}

Le comportement des macros de conversion de chaîne ATL dépend de la directive du compilateur en effet, le cas échéant. Si les types de source et de destination sont identiques, aucune conversion n'a lieu. Les directives du compilateur changent t et OLE comme suit:

Directive du compilateur en effet T devient OLE devient
aucun A W
_UNICODE W W
OLE2ANSI A A
_UNICODE et OLE2ANSI W A

Le tableau suivant répertorie les macros de conversion de chaîne ATL.

Macros de Conversion de chaîne 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 T2W T27

Les Macros ATL et fonctions globales

Voir aussi

DEVMODE et Macros de Conversion de chaîne TEXTMETRIC

Index