여기서 설명 하는 문자열 변환 매크로 ATL 및 MFC에 대 한 유효 합니다. 자세한 내용은 MFC 문자열 변환에 대 한 참조 TN059: MFC MBCS/유니코드 변환 매크로 사용 하 여 및 MFC 매크로 및 전역을。
문자열 변환 매크로의 구문은:
은 ( string_address )
예를 들어:
A2W(lpa)
매크로 이름에 원본 문자열 형식 (예를 들어, A) 왼쪽에 이며 대상 문자열 형식 (예를 들어, W) 오른쪽에. A LPSTR, OLE 의미 LPOLESTR, LPTSTR, T 의미 및 LPWSTR W 의미에 대 한 의미。
따라서, A2W LPWSTR LPSTR 변환, OLE2T LPOLESTR 는 LPTSTR를 변환 합니다.
대상 문자열이 대상 형식을 BSTR경우를 제외 하 고 _alloca를 사용 하 여 만들어집니다. 함수 반환 될 때 그것은 자동으로 정리 되도록를 스택에서 메모리를 할당 _alloca 를 사용 하 여。
매크로 이름에는 C , const 문자열 매크로 변환 합니다. 예를 들어, W2CA LPCSTR LPWSTR 변환。
메모nbsp;??ATL 문자열 변환 매크로 사용 하는 경우 컴파일러 오류가 발생 하지 않도록 하려면 USES_CONVERSION 매크로 함수 시작 부분에서 지정 합니다. 예를 들어(&N):
void func (LPSTR lpsz)
{
nbsp; USES_CONVERSION;
? ...
? LPWSTR x A2W(lpsz) =
? / / X 뭔가
? ...
}(&N)
ATL 문자열 변환 매크로의 동작 있으면 컴파일러 지시문을 효과에 따라 달라 집니다. 원본 및 대상 유형에 동일한 경우 변환이 이루어진다. 컴파일러 지시문 T 및 OLE 다음과 같이 변경:
| 효과에서 컴파일러 지시문 | T 된다 | OLE 된다 |
| 없음 | A | W |
| _UNICODE | W | W |
| OLE2ANSI | A | A |
| _UNICODE 및 OLE2ANSI | 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 | T2W | W2T |
참고 항목