티스토리 뷰
목차
반응형
[MFC] C++ Switch Case에서 CString 사용
기본적으로 MFC에선 Switch문에서 CString을 사용할 수 없습니다. 정말 사용해야할 피치못할 상황이라면 조금 돌아가는 방법으로 MFC 스위치문에서 CString을 사용할 수 있죠. 관련 소스를 소개합니다.
[[MFC] C++ Switch Case에서 CString 사용]
우선, 아래처럼 스위치문에 필요한 키워드를 정의합니다.
1 2 3 4 5 | #define STR_SWITCH(x) {CString switchval(x); if (false) {;} // Semicolon is necessary #define CASE(y) else if (switchval == y) {; #define DEFAULT else if (true) {; #define BREAK } #define END_SWITCH } | cs |
MFC에선 스위치문에 CString을 허용하지 않기에 이렇게 돌아가는 방법을 쓰는 것이죠.
실제 사용하는 방법은 아래에 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | STR_SWITCH(sName) CASE(_T("John")) // code BREAK CASE(_T("Bob")) // code BREAK CASE(_T("George")) // code BREAK CASE(_T("Fred")) // code BREAK CASE(_T("Harry")) // code BREAK DEFAULT return -1; BREAK END_SWITCH; | cs |
MFC Switch문을 사용할 수 없으니, 사용자 정의 Switch문을 만든겁니다.
이정도로만 구현해도 MFC 스위치문 CString 사용엔 별 문제 없습니다. 잘 쓰세요~
[MFC] C++ Switch Case에서 CString 사용
반응형