이제 본격적으로 eVC++을 공부해야할 때가 왔네요.

우선 eVC++를 하기 위해선 빌드 환경을 제공해야합니다.

시스템 속성에서 boot.ini 의 끝부분을 "Microsoft Windows XP Professional" /execute 로 수정해야해요.
"Microsoft Windows XP Professional" 는 이미 써있으니까 /execute만 추가하면 될겁니다~

그리고!! 컴파일 하기 전에 주의할점!

사용자 삽입 이미지


바로 이부분!!
eVC에서 아무리 컴파일 해도 에뮬레이터 연결이 안되길래 뭐가 문제인가 했더니 빌드 환경을 이상한 걸로 해놓고 있었네요. loop back adapter도 깔아보고 이것 저것 다 해봐도 안됐었는데..ㅎㅎ 바로 전게 문제였다는..
에뮬레이터로 디버그 하기 위해선 에뮬레이터 디버그를 선택해야합니다~

그리고~~ 마지막으로 또 주의할 점은 '유니코드!'
기존에 VC에서 컴파일 할때는 '멀티바이트 코드'로 옵션 변경해 놓으면 됐었는데 eVC서는 그게 안되니까 처음부터 유니코드를 고려하여 프로그래밍 해야합니다~~

다음 소스 코드를 한번 보도록 해요.
wsprintf( str,L"x=%d y=%d" , x, y);
//   TextOut(hdc,10,10,str,strlen(str)); //evc에서 TextOut은 먹히지 않음.
DrawText(hdc,str,_tcslen(str),&rt,DT_SINGLELINE | DT_VCENTER | DT_CENTER);

지금 wsprintf의 두번째 인자에 L을 붙였는데, 이것은 유니코드로 변환해 주기위한 하나의 작업입니다.
wsprintf( str,TEXT("x=%d y=%d") , x, y); 이렇게 TEXT를 써줘도 돼요.

그리고 char를 선언할 때는 TCHAR로 하도록 합시다! 이건 유니코드일땐 유니코드로, 아닐땐 아닌걸로 자동으로 설정되도록 하는 매크로에요.

아래 DrawText를 보면 _tcslen(str)이 보이죠? 멀티바이트 코드에선 사용되지 않는 함수죠.. 멀티바이트 코드에서의 strlen이 유니코드에서는 _tcslen으로 변했답니다~ 이것 외에도 바뀐게 많으니 지금부터 하나하나 찾아봐야겠죠~???

그럼 열심히 공부합시다 ^^
신고
블로그 이미지

roter

JHB / Peripheral Programmer

Tag

댓글을 달아 주세요