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: