글 수 204
무모한 용기가 화를 부른다고....
'나도 필터란걸 만들어보자' 하고 쓸데없는 결심을 하는 바람에(결심만)......
요새 1년을 기다려온 투3도 손도못대고 ....... Visual Studio 2005란거 깔고 낑낑대고 있네요..
(왜인지는 모르겠지만 현제 다운받은 아랄소스들이 컴파일이 안되네요...)
염치없지만 이번에도 많은 선배님들의 도움 부탁드립니다.
1.컴파일옵션에서 MBCS를 제거하는거랑
그냥 MBCS를 붙인후에 프로그램 서두에 #UNICODE를 디파인해두는거랑
결과에서 차이가 있나요??
2.컴파일옵션에서 MBCS를 제거하면 소스창에 일반문자열 "aaaa"는 자동적으로 유니코드 문자열이 되는건가요?
아님 이전과 똑같이 "aaaa"는 일반문자열이고 L"aaaaa"를 붙여야 유니코드 문자열로 인식하는건가요?
3.Visual Studio 2005에서는 Visual Assist를 사용할수 없나요?
확실히 기초가 너무없다보니 너무 기본적인걸 질문하는거 같아 염치가 없네요..긁적
'나도 필터란걸 만들어보자' 하고 쓸데없는 결심을 하는 바람에(결심만)......
요새 1년을 기다려온 투3도 손도못대고 ....... Visual Studio 2005란거 깔고 낑낑대고 있네요..
(왜인지는 모르겠지만 현제 다운받은 아랄소스들이 컴파일이 안되네요...)
염치없지만 이번에도 많은 선배님들의 도움 부탁드립니다.
1.컴파일옵션에서 MBCS를 제거하는거랑
그냥 MBCS를 붙인후에 프로그램 서두에 #UNICODE를 디파인해두는거랑
결과에서 차이가 있나요??
2.컴파일옵션에서 MBCS를 제거하면 소스창에 일반문자열 "aaaa"는 자동적으로 유니코드 문자열이 되는건가요?
아님 이전과 똑같이 "aaaa"는 일반문자열이고 L"aaaaa"를 붙여야 유니코드 문자열로 인식하는건가요?
3.Visual Studio 2005에서는 Visual Assist를 사용할수 없나요?
확실히 기초가 너무없다보니 너무 기본적인걸 질문하는거 같아 염치가 없네요..긁적
whoami
- 2008.12.14
- 10:34:52
일단 DEFINE 은 #define 으로 소스내에 선언하는 것과 컴파일러 옵션 (C/C++옵션) 에서 /D 를 사용해서 선언하는 방법이 있습니다. 보통 이런 전체 프로젝트 내에서 사용하는 DEFINE 은 컴파일러 옵션에서 설정하는 것이 좋습니다.
1. MBCS 를 UNICODE 로 변경해 주면 바로 유니코드로 컴파일이 됩니다.. 단 가능하면 컴파일러 옵션에서 설정해주세요. 왜냐하면 소스내에 넣어두면 해당 소스부분을 컴파일러가 읽기 전에는 기본 문자 처리 방식을 따라가기 때문입니다. 아마 VC6.0 까지는 MBCS, 그 이상이라면 UNICODE 가 기본일겁니다.
* 참고
문자 처리 방식 선언은 두 가지가 있습니다.. 이게 VC6.0 까지만 그런지 혹은 요즘 컴파일러도 그런지 모르겠습니다만.. MBCS 하고 _MBCS, 그리고 UNICODE 하고 _UNICODE.. ^^ 차이점은 MBCS/UNICODE 는 윈도우, _MBCS/_UNICODE 는 C/C++의 기본 라이브러리 (예: stdio.h 같은 것) 에서 사용할겁니다. 따라서 선언시 2가지 모두 선언해 두는 것이 맘 편하겠죠? ㅎㅎ
2. MBCS 이든 UNICODE 이든 "aaaa" 는 MBCS 문자, L"aaaa"는 UNICODE 문자입니다. 그리고 _T("aaaa") 는 설정에 따라 MBCS/UNICODE 에 맞춰서 L 을 붙여주거나 안 붙여주거나 합니다. 따라서 MBCS 혹은 UNICODE 를 확실히 구분해 줘야 할 필요가 있는, 특히 플러그인 문자 처리를 할 경우는 "aaaa" 혹은 L"aaaa" 를 쓰시고, 그럴 필요가 없는.. 예를 들면 메세지 박스 같은 것을 쓸 떄는 _T("aaaa") 를 사용하시면 되겠습니다.
3. VC2005 에서 VA 를 사용 가능합니다. 단, VA 설치 전에 VC2005 가 설치되어 있어야 합니다.. 만약 VC6.0 에 VA 가 이미 설치되어 있으면 일단 VA 를 언인스톨 - VC2005 설치 - VA 설치 하면 6.0 과 2005 에서 둘 다 사용 가능합니다.
1. MBCS 를 UNICODE 로 변경해 주면 바로 유니코드로 컴파일이 됩니다.. 단 가능하면 컴파일러 옵션에서 설정해주세요. 왜냐하면 소스내에 넣어두면 해당 소스부분을 컴파일러가 읽기 전에는 기본 문자 처리 방식을 따라가기 때문입니다. 아마 VC6.0 까지는 MBCS, 그 이상이라면 UNICODE 가 기본일겁니다.
* 참고
문자 처리 방식 선언은 두 가지가 있습니다.. 이게 VC6.0 까지만 그런지 혹은 요즘 컴파일러도 그런지 모르겠습니다만.. MBCS 하고 _MBCS, 그리고 UNICODE 하고 _UNICODE.. ^^ 차이점은 MBCS/UNICODE 는 윈도우, _MBCS/_UNICODE 는 C/C++의 기본 라이브러리 (예: stdio.h 같은 것) 에서 사용할겁니다. 따라서 선언시 2가지 모두 선언해 두는 것이 맘 편하겠죠? ㅎㅎ
2. MBCS 이든 UNICODE 이든 "aaaa" 는 MBCS 문자, L"aaaa"는 UNICODE 문자입니다. 그리고 _T("aaaa") 는 설정에 따라 MBCS/UNICODE 에 맞춰서 L 을 붙여주거나 안 붙여주거나 합니다. 따라서 MBCS 혹은 UNICODE 를 확실히 구분해 줘야 할 필요가 있는, 특히 플러그인 문자 처리를 할 경우는 "aaaa" 혹은 L"aaaa" 를 쓰시고, 그럴 필요가 없는.. 예를 들면 메세지 박스 같은 것을 쓸 떄는 _T("aaaa") 를 사용하시면 되겠습니다.
3. VC2005 에서 VA 를 사용 가능합니다. 단, VA 설치 전에 VC2005 가 설치되어 있어야 합니다.. 만약 VC6.0 에 VA 가 이미 설치되어 있으면 일단 VA 를 언인스톨 - VC2005 설치 - VA 설치 하면 6.0 과 2005 에서 둘 다 사용 가능합니다.
프로젝트의 속성에 들어가서
언어 설정에서 유니코드와 멀티바이트중에 하나를 선택하는걸로 됩니다.
문자열은 일반 프로그래밍이라면 구분없이
_T("") 으로 사용하지만
필터는 문자열 처리 필터니까 그러면 안되겠죠 ^^;
그래서 선언할때
char 또는 string으로 선언하면 ""로 쓰고,
WCHAR (또는 wchar_t), wstring으로 선언하면 L""으로 쓰죠.