아..
그래요?
"Resource Dll Wizard"는 옛날 부터 있었던 것입니다.
BCB5-Ent 에서 봤구
현재 BCB6-Pro을 쓰고 있구요
C++Builder 2007 Pro에는 방금 확인해 보니까 없네요
아래 설명한 원리를 정확히 이해하시면
그냥 dll 프로젝트 하나 만들어서 resource-dll을 만들수 있을것 같습니다만...
해보진 않았지만 가능할것 같은데요
--------------------------------------------------------------------
VCL의 Form이나 DataModule등을 생성하면
Design-time에 폼위에 올려진 Control이나 Component들의 생성과 프로퍼티 설정은
exe에 포함된 resource에서 읽어와서 생성합니다.
즉 xxx.dfm 파일이 그대로 exe의 리소스로 들어가는것입니다.
resource-editer프로그램을 exe를 열어서 form관련 dfm 리소스만 변경해버리면
폼위에 control을 추가할수도 잇구 삭제할수도 있습니다. 문론 안보이게 할수도 있구요
---------------------------------------------------------------------------
보통 exe에 포함되어있는 리소스를 읽어와서 Form위에 component를 생성하는데
랭귀지 설정을 해놓을경우 DLL에서 리소스를 읽어오도록 되어있는것 뿐입니다.
즉
1) dll 프로젝트를 언어별로 폴더를 따로해서 만드시구요
2) 프로젝트에 포함된 form파일을 각언어 폴더에 그대로 복사하여 각 프로젝트에 포함시킵니다.
그런다음 폼의 캡션,버튼의 캡션 등을 언어에 맞게 바꾸시구 컴파일 하시구요
3) 컴파일된 DLL의 이름을 변경합니다.
프로젝트명+쩜+언어
예를 들어 project1.exe에 영어 리소스 dll 이름은 project1.ENU 이런식으로요
4) 그런다음
exe의 프로젝트 파일 project1.cpp에서 폼을 생성하기전에 언어를 설정하시구요
--------------------------------------------------------------------------
첨부파일을 간단히 샘플을 만들어 봤습니다.
처음해봤는데 잘되네요
그럼..
김민호.소중한꿈 님이 쓰신 글 :
: 장성호님 답변 정말 고맙습니다.
:
: 다만 "Resource Dll Wizard" 라는 것이 최근 버전에 추가된 것 같습니다. 제가 지금 C++ Builder 2007을 사용중인데, 여기에는 없는 것 같네요. ㅜ.ㅜㅋ... Builder도 버전업이 되면서 개발자들을 위한 도구들이 자꾸 생겨나는군요.
:
: 여튼, 아직은 익숙하지가 않아서 시행착오를 거쳐야 하겠지만 장성호님 말씀대로 한 번 시도해 보겠습니다.
:
: 그럼 즐프하세요.
:
: 장성호 님이 쓰신 글 :
: : 몇가지 방법이 있는데요..
: :
: :
1) 따로 파일로 저장
: : Form의 Caption이나
: : ComboBox의 Items들이나 등을 모두 따로 Text파일에 저장해 뒀다가
: :
: : Application에서 언어 설정을 바꿀때 ..
: : 그때 파일의 내용을 모두 읽어와서 폼과 폼위에 올려진 모든 Component들의 string을 변경해줍니다.
: :
: : 코딩이 좀 필요하겠죠
: :
: :
: :
2) Resource Dll Wizard 이용
: : - 프로젝트를 open한 상태에서
: : - 메뉴 File-> New ->Other 클릭해서 New 탭에 보면
: : "Resource Dll Wizard" 라는게 있습니다.
: :
: : - 그걸 선택해서 next-next하다보면 언어 선택하는 창이 나오는데..
: : 그거시 필요한 언어(한글,영어,일어 등..)들을 선택하시구요
: : - 그다음에 Translation Manager 창이 나오는데..
: : 거기서 언어별로 text를 입력하시면 되구요
: : - 아니면..
: : ProjectGroup에 언어별로 project가 추가되는데..
: : 예를 들어 프로젝트명이 Project1이면
: : 한글은 Project1.KOR
: : 영어는 Project1.ENU
: : 해당 프로젝트를 열면 Project1에 있는 폼과 똑같은 폼이 있습니다.
: : 그 폼에서 caption등을 변경하시면 됩니다.
: :
: : - 컴파일 하면
: : Project1.exe 하나와 Project1.ENU 라는 dll과 Project1.KOR라는 dll이 생성됩니다.
: :
: : - Project1.exe 이 시작될때 register에서 언어 설정을 읽어와서
: : - 언어가 영어면 Form을 생성할때 Project1.ENU 라는 dll에서 리소스를 읽어서 폼을 생성하고
: : 언어가 한국어이면 Project1.KOR이라는 dll에서 리소스를 읽어와서 폼을 생성합니다.
: :
: : - 언어 설정의 변경은?
: : 윈도우s 레지스터리 "Software\\Borland\\Locales" 에 정보가 기록됩니다. (최신버젼을 잘모르겠음)
: :
: :
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=50790
: :
: : 언어 설정을 바꾼다고 해서 곧바로 폼에 언어가 변경되는것은 아닙니다.
: : Form을 생성할때 참조할 resource-dll 을 변경한 것 뿐이니..
: : 실제로 다시 폼을 생성해야 되겠쬬
: :
: :
: : 두번째 방법은 메뉴에서 언어 설정 변경하는 즉시
: : 실시간으로 모든 caption을 변경하기는 까다로운 부분이 있으니
: : 그럴경우 첫번째 방법을 이용하시는것이 좋을것 같구요..
: :
: : 다양한 언어 지원, 편리한 변경등을 하고자 할땐..
: : "Resource Dll Wizard" 를 이용하는방법도 괜찮을것 같습니다.
: :
: :
: : 그럼..
: :
: :
: : 김민호.소중한꿈 님이 쓰신 글 :
: : : 지금 현재 프로그램을 하나 만들고 있는 중입니다.
: : :
: : : 그런데 사용자 측에서 메뉴를 옵션에서 한글 또는 영어로 선택할 수 있도록 해줄 수 있는지를 요구하였습니다.
: : :
: : : 제가 지금껏 이렇게 해본 적이 없어서 조금 막막한데요. 뭔가 리소스 부분을 건드려야하는 것인지요?
: : :
: : : C++ Builder에서 메뉴를 한글, 영어로 바꿀 수 있도록 프로그래밍 하는 방법이 어떤 것인지를 알고 싶습니다.
: : :
: : : 그럼, 다들 즐프하세요.