| [ CnUnix ] in KIDS 글 쓴 이(By): backdrum (뒷 북) 날 짜 (Date): 2003년 8월 22일 금요일 오전 08시 40분 45초 제 목(Title): [재차질문]VC에서 타입 변환에 대해... 위의 VC++ 에 대해 질문한 사람입니다. 컴파일러 옵션을 변경하는 과정에서 타입 캐스팅 오류가 나서, char -> TCHAR로, strcpy->lstrcpyW 등으로 바꿨습니다. (기존 프로젝트에 #define UNICODE가 들어간 stdafx.h가 있어서 .C에도 이부분을 적용했습니다.) 그리고는 캐스팅 오류나는 것은 강제로 지정하고 실행시켰더니 다른 분이 지적한 대로 기존에는 잘 돌던 프로그램이 100% 죽어버립니다. 주로 "myprogram.exe의 0x77f867e6에 첫째 예외가 있습니다. 0xC0000005: 0x002e002a 위치를 기록하는 동안 액세스 위반이 발생했습니다." "HEAP[myprogram.exe]: Heap block at 00882FD8 modified at 00883016 past requested size of 36 myprogram.exe의 0x77fa144b에 처리되지 않은 예외가 있습니다. 사용자 중단점" 이와 같은 에러입니다. multi thread 부분에서 문제가 생기는 줄 알았는데 .c로 컴파일해 돌렸을 때는 '전혀' 문제가 없던 부분입니다. 파일 확장자를 .c에서 .cpp로 바꾸고, define UNICODE 넣고 타입 변환하니까 발생한 건데, 이 문제를 어떻게 해결해야 할까요? 빠짐없이 char를 TCHAR로 바꾸면 될줄 알았는데 그리 만만하지 않네요. 일단 UNICODE에 대한 자료를 찾아보겠으나 급한 마음에 이곳에 재차 질문올립니다. 죽겠네. ㅠ.ㅠ |