설치 프로그램의 소스입니다..

혹시 설치 프로그램을 만들어보고자 하시는 분이 계시면 그냥 참고하시라고요.. ^^;
뭐.. 지금 프로그램 만지시는 분들이 전부 다 저보다 실력이 월등한 것 같아서 도움은 안 될 것 같지만....

작업은 Visual C++ 6.0으로 했습니다. 제가 프로그래밍이 초보이다보니.. 삽질을 좀 많이 했습니다...
지금 사용하는 OS가 Windows 7인데.. 이놈이 Windows7에서는 안 깔리더라고요....
그래서 XP Mode를 받아서 Virtual PC로 XP 돌리고 그 위에 Visual Studio 6 깔아서..
아주 삽질을 했습니다....

몇 가지 정보들이.. text.dbt 파일은 제가 알기로는 유니코드의 UCS2 방식으로 작성되어 있습니다. 반면 다른 파일들은 ANSI의 변형인 MBCS방식으로 되어 있고요..

기 본적으로 작업은 UCS2 (유니코드의 캐릭터셋 중에서 한 캐릭터는 무조건 2바이트로 잡고 사용하는 것) 셋으로 프로그램을 짰고요.. 파일 입출력은 text.dbt 파일을 위해서는 wfopen으로 했고 그 외 다른 파일들은 fopen으로 했습니다.. 기타 다른 방식으로 파일을 여는 방식도 있는거 같은데.. 그냥 구닥다리이기는 하지만 fopen으로 열고 쓰는게 실행파일 용량을 제일 적게 차지하는 것 같더라고요..

MBCS 방식의 파일을 읽고 쓰기게되면 프로그램 내부적으로 사용하고 있는 UCS2 셋과 다르기 때문에 따로 문자열 처리를 해줘야 하는데.. wcstombs 함수를 이용해서 변환해서 썼습니다..

참.. fopen 함수로 파일을 열려면 열기 위한 파일의 이름 자체를 MBCS 방식으로 변환 해줘야 하는데.. 이때 폴더 이름에 한글이 들어가게 되면 이상하게 wcstombs 함수로는 제대로 변환이 안 되더라고요.. 그래서 파일 이름을 UCS2에서 MBCS로 바꿀때는 widechartomultibyte 함수를 사용을 하니까 제대로 변환이 되더군요..

일 단 변수 선언은 기본적으로는 TCHAR로 잡았고요.. 처음 도입부에 #define UNICODE로 해서 TCHAR형의 변수들은 2바이트 UCS2셋의 유니코드형으로 변환하도록 했습니다.. 나머지 모든 string 함수들은 _tcscpy 같은 _t 형 함수를 썼고.. 텍스트는 모두 _T("텍스트") 형식으로 처리 했습니다.. 단 MBCS 형식의 문자열을 담아야 하는 변수의 경우에는 char로 변수를 선언을 했습니다..

이렇게 자세하게 설명을 해 놓으면 아무래도 나중에 소스를 분석하거나 사용하려는 분들에게 도움이 되겠죵.. ^^; 저는 Visual C++ 6.0으로 작업을 했는데.. 지금 세팅으로는 아마도 상위 버전의 Visual C++로 컴파일을 해도 큰 문제 없이 컴파일이 되지 않을까 싶습니다.. 혹시 컴파일에 문제가 생기면 대부분 문자열 관련 문제일 것 같은데.. 위처럼 했으니 참고해보세요....

참.. 이 파일은 실제 프로그램 파일은 아닙니다..
당장 사용할 수 있는 설치 프로그램은 승택기님이 만들어주신다 하셨으니.. 기다려보세요.. ^^;

--------------------------------------------------------------------------------

흠냐.. 소스를 다시 싹 갈아 엎었습니다. 기존의 TCHAR는 전부 WCHAR로 바꾸고.. _tcs 계열의 함수들도 죄다 wcs 게열로 바꾸었습니다.. 이게 더 나을 것 같아서요.. 아싸리 유니코드로..

그 리고 DB 파일 편집할때 문자열 비교하는 부분도 조금 더 쉽게 바꿨습니다.. wcsstr 함수를 한 번 써보았는데.. 일은 잘 하는데.. 많이 느려지네요.. 그래서 다시 16진수로 검사하는 것으로 바꾸었고.. 기존 코드보다 조금 더 편하게 검사를 하도록 했습니다.. 흠..

----------------------------------------------------------------------------------

2010년 10월 20일자로 올라온 Young 통합 치트모드 1.4 버전의 설치 프로그램의 소스를 다시 올립니다.
한글패치 기능을 포함한 소스입니다..

 

P.S.: 더 길드 2에 대해 더 자세하고 다양한 정보를 얻기 원하시면 네이버의 더길드 카페(http://cafe.naver.com/theguildz2)를 방문해 보세요.

Posted by yyht
,