이러한 매크로는 문자열 변환 기능을 제공합니다.
ATL 및 MFC 문자열 변환 매크로
이 항목에서 설명하는 문자열 변환 매크로는 ATL과 MFC에 모두 사용 가능합니다. MFC 문자열 변환에 대한 자세한 내용은 TN059: MFC MBCS/유니코드 변환 매크로 및 MFC 매크로 및 전역 사용을 참조하세요.
DEVMODE 및 TEXTMETRIC 문자열 변환 매크로
이러한 매크로는 DEVMODE 또는 TEXTMETRIC 구조체의 복사본을 만들고 새 구조 내의 문자열을 새 문자열 형식으로 변환합니다. 매크로는 스택에서 새 구조체에 대한 메모리를 할당하고 새 구조체에 대한 포인터를 반환합니다.
MACRONAME( address_of_structure )
설명
예시:
DEVMODEW* lpw = DEVMODEA2W(lpa);
and:
TEXTMETRICW* lptmw = TEXTMETRICA2W(lptma);
매크로 이름에서 원본 구조의 문자열 형식은 왼쪽(예: A)이며 대상 구조의 문자열 형식은 오른쪽에 있습니다(예 : W). LPSTR, OLE는 LPOLESTR, T는 LPTSTR, W는 LPWSTR을 의미합니다.
따라서 LPSTR 문자열이 있는 구조체를 LPWSTR 문자열이 있는 구조체로 DEVMODE 복사 DEVMODE 할 DEVMODEA2W LPOLESTR 문자열이 있는 구조체를 LPTSTR 문자열이 있는 구조체로 TEXTMETRIC 복사 TEXTMETRIC 하는 TEXTMETRICOLE2T.
구조체에서 DEVMODE 변환된 두 문자열은 디바이스 이름(dmDeviceName)과 양식 이름(dmFormName)입니다. DEVMODE 문자열 변환 매크로는 구조체 크기(dmSize)도 업데이트합니다.
구조체에서 TEXTMETRIC 변환된 네 개의 문자열은 첫 번째 문자(tmFirstChar), 마지막 문자(tmLastChar), 기본 문자(tmDefaultChar) 및 나누기 문자(tmBreakChar)입니다.
문자열 변환 매크로와 TEXTMETRIC 문자열 변환 매크로의 DEVMODE 동작은 적용되는 컴파일러 지시문(있는 경우)에 따라 달라집니다. 소스와 대상 형식이 같으면 변환이 수행되지 않습니다. 컴파일러 지시문은 다음과 같이 T 및 OLE를 변경합니다.
| 적용되는 컴파일러 지시문 | T의 변경 결과 | OLE의 변경 결과 |
|---|---|---|
| 없음 | A | W |
| _UNICODE | W | W |
| OLE2ANSI | A | A |
| _UNICODE 및 OLE2ANSI | W | A |
다음 표에는 문자열 변환 매크로와 TEXTMETRIC 문자열 변환 매크로가 나와 DEVMODE 있습니다.
DEVMODE 매크로 |
TEXTMETRIC 매크로 |
|---|---|
| DEVMODEA2W | TEXTMETRICA2W |
| DEVMODEOLE2T | TEXTMETRICOLE2T |
| DEVMODET2OLE | TEXTMETRICT2OLE |
| DEVMODEW2A | TEXTMETRICW2A |