본문 바로가기

쓰기

무모한 용기가 화를 부른다고....
'나도 필터란걸 만들어보자' 하고 쓸데없는 결심을 하는 바람에(결심만)......
요새 1년을 기다려온 투3도 손도못대고 ....... Visual Studio 2005란거 깔고 낑낑대고 있네요..
(왜인지는 모르겠지만 현제 다운받은 아랄소스들이 컴파일이 안되네요...)
염치없지만 이번에도 많은 선배님들의 도움 부탁드립니다.

1.컴파일옵션에서 MBCS를 제거하는거랑
그냥 MBCS를 붙인후에 프로그램 서두에 #UNICODE를 디파인해두는거랑
결과에서 차이가 있나요??

2.컴파일옵션에서 MBCS를 제거하면 소스창에 일반문자열 "aaaa"는 자동적으로 유니코드 문자열이 되는건가요?
아님 이전과 똑같이 "aaaa"는 일반문자열이고  L"aaaaa"를 붙여야 유니코드 문자열로 인식하는건가요?

3.Visual Studio 2005에서는 Visual Assist를 사용할수 없나요?

확실히 기초가 너무없다보니 너무 기본적인걸 질문하는거 같아 염치가 없네요..긁적
분류 :
Talk
조회 수 :
13663
등록일 :
2008.12.14
02:11:32
엮인글 :
https://arallab.hided.net/4011/1fc/trackback
게시글 주소 :
https://arallab.hided.net/board_devtalk/4011

Hide_D

2008.12.14
02:22:34
그냥 MBCS와 유니코드의 구분은

프로젝트의 속성에 들어가서
언어 설정에서 유니코드와 멀티바이트중에 하나를 선택하는걸로 됩니다.

문자열은 일반 프로그래밍이라면 구분없이
_T("") 으로 사용하지만

필터는 문자열 처리 필터니까 그러면 안되겠죠 ^^;

그래서 선언할때
char 또는 string으로 선언하면 ""로 쓰고,
WCHAR (또는 wchar_t), wstring으로 선언하면 L""으로 쓰죠.

Hide_D

2008.12.14
02:24:51
플러그인 중에서

관리자님이 제작하신건 Visual Studio 2008로 제작된거라
vcproj와 sln파일을 메모장으로 열어서 버전을 하나씩 낮춰줘야되구요

whoami님이 만드신건 대부분 Visual Studio 6.0으로 만드신 거고

제가 만든건 Visual Studio 2005라서
버전 차이가 있을지도 모르겠네요.

호기심맨

2008.12.14
02:30:20
아 그럼 그냥 컴파일옵션에서 MBCS를 제거한후에
#define DEF_StrA "aaaaa"로 해노면
저 "aaaaa"는 일반문자열 그러니까 cahr형인건가요?

지금까지는 MBCS를 붙인상태에서 프로그램 서두에 #define UNICODE를 선언해서 햇거든요
근데.... MBCS를 제거하면 저 선언해둔 #define UNICODE를 지워야 하는건지...
아니면 지우나 안지우나 아무의미없는건지.....

호기심맨

2008.12.14
02:34:04
아 whoami님 소스를 보면 알수있겠네요.... Visual 6.0에서는 어떻게 했는지...
근데 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 에서 둘 다 사용 가능합니다.

whoami

2008.12.14
10:42:03
* 추가 - 프로젝트 버전 낮추는 법
1. .sln 파일을 텍스트 에디터로 열고
Microsoft Visual Studio Solution File, Format Version 10.00 -> 9.00 으로 변경
# Visual Studio 2008 -> 2005 로 변경
2. .vcproj  파일을 텍스트 에디터로 열고
Version="9.00" -> "8.00" 으로 변경

하시면 됩니다.. ^^

호기심맨

2008.12.14
22:16:35
아!! 컴파일옵션에서..... MBCS나 UNICODE를 적용하면 그게 자동적으로 전 소스에 #define되는거였군요..
진짜 큰거 배웠네요... (아니 제가 너무 당연한걸 몰랐던건가요..긁적)
덕분에 소스 안고치고도 Project Settings에다만 종류별로 등록해두면 한번 컴파일에
MBCS용 실행파일도 나오고 ,UNICODE용 실핼파일도 나오고..너무 편해졌네요
정말이지 whoami님 Hide님 두분에게  너무 감사드립니다. (꾸벅)
List of Articles
번호 제목 글쓴이 조회 수sort 추천 수 날짜 최근 수정일
공지 Talk [필독] 테스트필터 사용시 주의사항 라파에 155437   2008-08-03 2008-12-16 00:03
309 Talk [질문]UTF 코드를 SHIFT-JIS와 KS코드로 변환 [4] 호기심맨 13982   2008-09-02 2008-09-16 23:09
안녕하세요... 요즘 Aral이란 프로그램 덕에 갑자기 컴퓨터가 좋아진 사람입니다. 다시한번 모든 개발자분께 감사하구요.. 저도 아주아주 미약한 실력이지만 .. 참여해 보려고 합니다. (Aral에 도움될 실질적 가능성 0.0001%) 제가 관심가지는 부분은 단순님이...  
308 Archive CustomDic 0.3 20080107 또 오류 OTL [5] file Hide_D 13954   2009-01-07 2009-01-08 02:00
 
307 Talk 필터에 MFC로 모달리스 창을 띄웠을때=ㅅ=; [4] file Hide_D 13934   2008-12-27 2008-12-30 08:29
 
306 Archive [플러그인, 소스] DenyWord 테스트 버전 20080921 file Hide_D 13927   2008-09-21 2009-01-06 01:25
 
305 Archive 아야카시 실행파일 수정 [5] file 아랄 13873   2009-01-02 2009-03-24 11:42
 
304 Talk 기리기리 버그, [6] Hide_D 13829   2008-10-19 2009-01-06 01:48
기리기리에서는 라인 외부 함수로 @,*를 사용하고 내부 함수(매크로?)로 [] 를 사용하고 있는데, []안에 올바른 매크로가 들어가지 않는 경우, 튕겨버립니다 ezTransXP나 KiriKiri나 둘중에 한녀석 손좀 봐둬야 할듯 =ㅅ=; http://www.aralgood.com/zbxe/13278...  
303 Talk ATLAS 삽질중.. [3] file 아랄 13771   2008-11-09 2009-01-06 01:15
 
302 Talk 아랄 디버깅에서 전체문장이 나오고 다시 한글자로 나오는 경우에서요 [2] file 암흑마제 13666   2009-12-21 2009-12-22 23:37
 
» Talk [질문] MBCS와 #UNICODE의 관계 [7] 호기심맨 13663   2008-12-14 2008-12-14 22:16
무모한 용기가 화를 부른다고.... '나도 필터란걸 만들어보자' 하고 쓸데없는 결심을 하는 바람에(결심만)...... 요새 1년을 기다려온 투3도 손도못대고 ....... Visual Studio 2005란거 깔고 낑낑대고 있네요.. (왜인지는 모르겠지만 현제 다운받은 아랄소스...  
300 Talk 고칠거? [10] Hide_D 13651   2009-11-28 2009-12-17 18:13
아랄 처음 켰을때 프로세스 먼져 보이는거 아랄만 아랄로 프로세스에 안뜬다는거. by 피시 제 덧[..] 이지트랜스 경로 지정하면 앞으론 고정해봅시다 ㅇㅇ  
299 Talk 참 오묘한 윈도우~ 호기 13568   2009-04-04 2009-04-04 01:02
실수로.... malloc으로 잡은걸 HeapFree 하고 있었네요... (머 정확히 말자면 HeapCreate로 새 힙영역 확보하고 할당 해제 하는걸 구축했습니다만.... 정작 할당부분에서 malloc을썼던거죠) 문제는 이렇게 잘못짠걸 1개월이나 지난후에 알았다는 겁니다. 즉 그...  
298 Archive [플러그인, 소스] ATCode 테스트 버전 20080721 [10] file whoami 13514   2008-07-21 2011-06-28 01:25
 
297 Talk 번역기(eztransXP)가 만드는 몇가지 문제들 - 1 [1] Hide_D 13437   2009-12-16 2009-12-16 21:32
이지트랜스가 만드는 몇가지 문제에 대해서 다뤄보려고 합니다. 우선 첫번째로 일본어의 히라가나, 또는 가타카나 한글자가 번역기로 입력될경우 결과물이 공백(length = 0)이라는 문제입니다. 이 문제는 대개 게임 엔진에서 '강제로 한글자씩 출력하는 경우'(...  
296 Archive [플러그인, 소스] FixLine 테스트 버전 Archive(08.31 12:12 갱신) [1] file Hide_D 13429   2008-08-30 2009-01-18 20:11
 
295 Archive [플러그인,소스] FixLine 테스트버전 081220_2 [2] file Hide_D 13376   2008-12-20 2008-12-21 08:29
 
294 Talk [오류] 확장자가 ats 인 파일 실행시 오류 납니다. [1] 암흑마제 13360   2009-12-20 2009-12-20 21:08
auto run invalid parameter or setting file! 이라고 뜨는데요 확장자가 ats 인 파일을 실행시키면 이렇게 되네요 참고로 아랄0.3이고 0.3은 설치 잘 되었습니다.  
293 OtherFiles fixline 테스트 2차 file 처음처럼만 13341   2008-12-16 2008-12-16 15:52
 
292 Archive [플러그인,소스] Korean Duplication Checker 20090115 [2] file Hide_D 13334   2009-01-14 2009-01-19 23:34
 
291 Talk 아랄0.3 20일자 업데이트 적용시 구동 스샷(반반??) [4] file 암흑마제 13305   2009-12-21 2009-12-21 18:35
 
290 Talk 튕기는 문제에 대해서 [6] Hide_D 13286   2009-11-26 2009-12-15 02:55
뭐 다들 아시다시피(?) 대부분의 문제는 보안툴이나 백신에 대해선 충돌하기 때문인데, 여태까지는 소극적으로 대응해왔는데 이젠 좀 적극적으로 뭐가 문제인지를 찾아봐야겠습니다. 해서 다음을 조사해서 보고서를 작성하는 프로그램을 만들어볼 예정입니다~ ...