Dize dönüştürme makrolar

Burada tartışılan dize dönüştürme makroları, hem atl hem de mfc için geçerlidir. mfc dize dönüştürme hakkında daha fazla bilgi için bkz: TN059: mfc mbcs/Unicode dönüştürme makroları kullanarak ve mfc makrolar ve Globals.

Dize dönüştürme makroları sözdizimi:

MAKROADI ( string_address )

Örneğin:

A2W(lpa)

Makro adları, kaynak dize türü (örneğin, a)solda ve hedef dize türü (örneğin, w) sağda. a duruyor lpstr, ole standları için lpolestr, lptstr t kısaltmasıdır ve w lpwstr kısaltmasıdır.

Böylece A2W bir lpstr , lpwstriçin bir dönüştürür, OLE2T bir lpolestr , bir lptstrvb. için dönüştürür.

Hedef dize hedef türü bstrolduğunda _alloca, dışında kullanılarak oluşturulur. Böylece, işlevini verir, bu otomatik olarak temizlenir _alloca kullanarak kapalı yığın bellek ayırır.

Makro adında bir c ise, makro sabit bir dizeye dönüştürür. Örneğin, W2CA için bir LPCTSTR bir lpwstr dönüştürür.

&Notnbsp;  atl dize dönüştürme makro kullanırken, derleyici hataları önlemek için USES_CONVERSION makro işlevinizin başında belirtin. Örneğin:

void func (lpstr lpsz)
{
 nbsp; USES_CO&NVERSION;
   ...
   lpwstr x A2W(lpsz) =
   / / X ile bir şeyler yapmak
   ...
}

Eğer herhangi bir etkisi, derleyici yönergesinde atl dize dönüştürme makroları davranışını bağlıdır. Kaynak ve hedef türleri aynı ise, dönüştürme gerçekleşir. t ve ole derleyici yönergeleri aşağıdaki gibi değiştirin:

Derleyici yönergesi etkisi T olur Ole olur
hiçbiri A W
_UNICODE W W
OLE2ANSI A A
_UNICODE ve OLE2ANSI W A

Aşağıdaki tabloda, atl dize dönüştürme makroları listelenmektedir.

Atl dize dönüştürme makrolar

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 W2T

Atl makrolar ve Global Functions

Ayrıca bkz:

Devmode ve TEXTMETRIC dize dönüştürme makrolar

Index