현재 진행중인 프로젝트가 어느 정도 끝이 보이는 시점에서 다국어 버전을 만들어 보기로 했습니다.(국내 회사에서 사용하는 것이므로 필요하지는 않겠지만...) 먼저 주 프로젝트에서 resource.h , rc 파일 , 그리고 관련된 리소스 파일들을 이용해서 DLL을 만듭니다. InitInstance 함수에서 리소스 DLL을 로딩합니다. 로딩한 DLL로 리소스 핸들을 설정합니다. ExistInstance 함수에서 리소스 DLL을 해제시킵니다. 전체적인 줄거리는 위와 같으며 쉽게 할 수 있습니다. 그러나 현실에서는 그렇게 쉽게 되지 않습니다. 2번 항목에서 InitLanguage()함수를 InitInstance()에서 가장 먼저 호출하였습니다. - InitLanguage() 함수는 리소스 DLL을 로딩하고 리소스 핸들을 설정하는 함수 BOOL CAdminApp::InitLanguage() { //Set the new language m_hMultiLangRes = LoadLibrary("Lang\\AdminKorLang.dll"); if (m_hMultiLangRes) AfxSetResourceHandle(m_hMultiLangRes); return TRUE; } BOOL CAdminMain::InitInstance() { InitLanguage(); AfxEnableControlContainer(); FileZilla의 소스를 보고 이렇게 했습니다. 그랬더니 프로그램이 에러가 발생하고 종료되었습니다. 원인을 살펴보니 Grid Control을 폼의 초기화 부분(OnInitialUpdate)에서 Create 함수를 통해 생성하고 있었는데 생성하는데 실패되었습니다. 참고로 Grid Control은 유명한 MFC Grid Control이며 다른 DLL( 컨트롤에 관련된 DLL을 만들어 사용하고 있었음 )에 포함되어 있었습니다. 이 ...