Windows/MFC
Resource 파일 수정 하기
aucd29
2013. 10. 2. 18:24
0. 증상 :
WinCE에 포함된 *.rc, *.res 등은 나와같은 QVGA 크기에 맞도록 PDA를 작업하는 사람에게는 정말 힘든 시련을 안긴다. 많은 부분들이 QVGA용으로 별도의 resource 파일을 제공하거나 res파일 안에 VGA/QVGA용 resource 들이 별도로 들어 있는 경우가 있다. 그러나, 일부는 그냥 VGA 크기로 나오는 경우가 있다. 그것도 여기저기 아무데서나 튀어 나온다. 나처럼 한국어뿐 아니라 일본어/중국어/영어/불어/독어 등 다양한 나라 말로 작업해야 하는 경우는 정말 더 힘들다.
0. 수정 방법 :
지금까지 작업해 보면 일단 Platform Builder 가 편집하기 가장 좋은 것 같다. 해당 rc 나 res 파일을 찾는다. 이것 또한 만만치 않다. 일부 Dialog 창은 어느 resource 파일에서 나타나는지 한참을 찾아야 한다.
- *.rc 이 파일을 Platform builder에서 찾아서 Dialog의 크기나 static 의 문자열을 일 부 축소하거나 변경할 수 있다. 그리고, 저장한다. 그런데, 문제가 조금 있다. 해당 폴더에 쓸데 없는 파일들이 생기고 resource.h 등..(맞나??), 암튼 몇 개의 추가적인 파일들이 생기고 rc 파일에서는 이 파일들을 include 해서 사용하도록 변경된다. 이렇게 되면 컴파일하는데 문제가 생길 수도 있고, 기존 original source에 알 수 없는 파일이 생길 수도 있어서 문제다. 이 경우를 대비해서 original 파일을 백업해 놓고 작업하기를 권한다. 그리고, 이렇게 수정된 후에는 orginal 파일과 비교해 가면서 Dialog 나 static 항목이 변경된 부분만 orginal 파일에 추가해 넣는다. 새롭게 생긴 include 부분들은 모두 무시한다. 이제 새로 생긴 파일들은 삭제하면 된다.
- 그런데, 또 하나의 문제가 있다. 이렇게 수정된 rc 파일은 영문 버전에만 적용된다는 점이다. 다른 언어용 resource 들은 이미 만들어진 res 파일 형태로 존재한다. 이것은 각 나라 언어 폴더 아래에 존재한다. (예로 한국어는 ARMV4I\retail\0412 폴더에 파일 이름.res 형태로 있다.) 이러한 각 나라의 언어에 맞춰서 수정하려면 XP의 제어판->국가 및 언어 옵션->고급 항목에서 중간이 언어 선택창에서 해당 언어를 선택한다. "확인" 버튼을 누르면 PC를 Reboot 할 것이다. 이렇게 해 놓고, Platform builder에서 해당 res를 편집하면 된다. res는 이미 컴파일이 된 파일이므로 rc 파일 처럼 다른 파일이 생기지는 않는다. 이렇게 해당 Locale로 변경하지 않고 그냥 한글 상태에서 수정하면 보통은 해당 언어의 문자가 깨져 버린다.
- 가끔 수정해야하는 Dialog가 Title이 없는 tab 형태가 있을 경우가 있다.(가끔이 아니라 아주 많다) 이 경우에는 원본 Dialog 크기를 잘 결정하고 그에 맞춰서 수정해 줘야 한다. 자칫 실행하면 화면에 나타나지 않는 경우도 있다. 그리고, 주위해야 하는 것 또 한가지는 WISWIG 이 잘 되지 않는 다는 점이다. 분명 수정하는 Dialog의 창에는 문자가 해당 버튼이나 static 안에 맞게 표시되지만 실제 빌드해 놓고 보면 앞뒤로 잘리는 경우가 심심치 않게 발생한다. 결국 일단 수정해서 빌드한 다음 실행되는 것을 보면서 한 번 더 튜닝할 필요가 있다.
WinCE에 포함된 *.rc, *.res 등은 나와같은 QVGA 크기에 맞도록 PDA를 작업하는 사람에게는 정말 힘든 시련을 안긴다. 많은 부분들이 QVGA용으로 별도의 resource 파일을 제공하거나 res파일 안에 VGA/QVGA용 resource 들이 별도로 들어 있는 경우가 있다. 그러나, 일부는 그냥 VGA 크기로 나오는 경우가 있다. 그것도 여기저기 아무데서나 튀어 나온다. 나처럼 한국어뿐 아니라 일본어/중국어/영어/불어/독어 등 다양한 나라 말로 작업해야 하는 경우는 정말 더 힘들다.
0. 수정 방법 :
지금까지 작업해 보면 일단 Platform Builder 가 편집하기 가장 좋은 것 같다. 해당 rc 나 res 파일을 찾는다. 이것 또한 만만치 않다. 일부 Dialog 창은 어느 resource 파일에서 나타나는지 한참을 찾아야 한다.
- *.rc 이 파일을 Platform builder에서 찾아서 Dialog의 크기나 static 의 문자열을 일 부 축소하거나 변경할 수 있다. 그리고, 저장한다. 그런데, 문제가 조금 있다. 해당 폴더에 쓸데 없는 파일들이 생기고 resource.h 등..(맞나??), 암튼 몇 개의 추가적인 파일들이 생기고 rc 파일에서는 이 파일들을 include 해서 사용하도록 변경된다. 이렇게 되면 컴파일하는데 문제가 생길 수도 있고, 기존 original source에 알 수 없는 파일이 생길 수도 있어서 문제다. 이 경우를 대비해서 original 파일을 백업해 놓고 작업하기를 권한다. 그리고, 이렇게 수정된 후에는 orginal 파일과 비교해 가면서 Dialog 나 static 항목이 변경된 부분만 orginal 파일에 추가해 넣는다. 새롭게 생긴 include 부분들은 모두 무시한다. 이제 새로 생긴 파일들은 삭제하면 된다.
- 그런데, 또 하나의 문제가 있다. 이렇게 수정된 rc 파일은 영문 버전에만 적용된다는 점이다. 다른 언어용 resource 들은 이미 만들어진 res 파일 형태로 존재한다. 이것은 각 나라 언어 폴더 아래에 존재한다. (예로 한국어는 ARMV4I\retail\0412 폴더에 파일 이름.res 형태로 있다.) 이러한 각 나라의 언어에 맞춰서 수정하려면 XP의 제어판->국가 및 언어 옵션->고급 항목에서 중간이 언어 선택창에서 해당 언어를 선택한다. "확인" 버튼을 누르면 PC를 Reboot 할 것이다. 이렇게 해 놓고, Platform builder에서 해당 res를 편집하면 된다. res는 이미 컴파일이 된 파일이므로 rc 파일 처럼 다른 파일이 생기지는 않는다. 이렇게 해당 Locale로 변경하지 않고 그냥 한글 상태에서 수정하면 보통은 해당 언어의 문자가 깨져 버린다.
- 가끔 수정해야하는 Dialog가 Title이 없는 tab 형태가 있을 경우가 있다.(가끔이 아니라 아주 많다) 이 경우에는 원본 Dialog 크기를 잘 결정하고 그에 맞춰서 수정해 줘야 한다. 자칫 실행하면 화면에 나타나지 않는 경우도 있다. 그리고, 주위해야 하는 것 또 한가지는 WISWIG 이 잘 되지 않는 다는 점이다. 분명 수정하는 Dialog의 창에는 문자가 해당 버튼이나 static 안에 맞게 표시되지만 실제 빌드해 놓고 보면 앞뒤로 잘리는 경우가 심심치 않게 발생한다. 결국 일단 수정해서 빌드한 다음 실행되는 것을 보면서 한 번 더 튜닝할 필요가 있다.