MFC 응용 프로그램에 대한 지역화된 리소스 DLL을 만드는 방법

기술 자료 번역 기술 자료 번역
기술 자료: 198846 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

요약

리소스 DLL은 리소스를 서로 다른 언어를 사용하여 효율적인 방법입니다. 지역화된 설치 프로그램을 통해 리소스를 가진 단일 DLL 응용 프로그램을 제공할 수 있습니다. 다른 언어로 변경하면 올바른 DLL을 사용하는 간단한 문제입니다.

아래 정보가 지역화된 리소스 DLL이 Visual C++ 5.0 함께 만드는 방법을 설명합니다.

추가 정보

이 문서에서는 응용 프로그램 및 리소스 DLL 여러 언어를 지원할 수 생성하는 쉽게, 일반적인 방법을 설명합니다. 이 메서드를 사용하여 사용자가 모든 자원의 한 RC 파일에서 비교적 쉽게 구현된 지금까지 어떤 리소스를 볼 수 있습니다.

  1. (이 예제에서는 MyApp 함), 기본 MFC 응용 프로그램 마법사 응용 프로그램을 만들고 영어 리소스 언어를 지정하십시오. 사용할 MFC 라이브러리를 공유 DLL로.
  2. 기본 MFC 응용 프로그램 DLL 최상위 프로젝트 (ResourceDll 이 예제에서는), 삽입 및 MFC 확장 DLL (MFC DLL 공유 사용) DLL 형식을 선택하십시오. .lib 파일에 대한 DLL을 만들어졌기 때문에, 최상위 프로젝트 실행 파일의 후속 빌드 링커 문제를 피할 수 있습니다.
  3. 제거하고 RC 파일을 Resource.h 파일이 있는 ResourceDll.rc2 삭제한 파일 및 ResourceDll 프로젝트 RES 디렉터리에서.
  4. 프로젝트 메뉴에서 프로젝트 추가 팝업 메뉴를 선택한 다음 파일 을 선택하십시오. MyApp.RC 파일을 ResourceDll 프로젝트에 삽입하십시오.
  5. 각 추가 언어에 대해 자원의 해당 MyApp 지역화된 됩니다.

    1. 빌드 메뉴에서 구성 을 및 새 릴리스 및 디버그 구성을 추가하십시오. 예를 들어, 프랑스어 릴리스 추가 구성 설정을 통해 ResourceDll - Win32 릴리스프랑스어 디버그 구성 추가 복사하여 에서 ResourceDll - Win32 디버그 설정을 복사합니다.
    2. 프로젝트 설정 대화 상자에서 설정 콤보 상자에 있는 여러 구성 을 선택하십시오. 릴리스 및 디버그 프로젝트 구성이 특정 언어에 대한 수정 프로젝트 구성 선택 대화 상자에서 선택하십시오. 리소스 탭을 AFX_RESOURCE_DLL 및 AFX_TARG_XXX XXX 위치, 전처리기 정의를 추가할 해당 언어에 대한 문자 지정자가. 예를 들어, FRA에 대한 프랑스어 [프랑스, 독일어, DEU 및 ENU에 대한 영어 (미국)].

      참고: 전처리기 정의 공백 없이 쉼표로 정의입니다.
    3. 해당 언어 콤보-상자에서 해당 자원을 사용할 언어를 선택하십시오.

      참고: 이를 식별하는 데 도움이 되는 DLL 이름을 지정할 수 있습니다. 예를 들어, "d" 루트 이름을 디버그 DLL, 표시 및 특정 언어 관련 파일 확장명을 사용하여 로캘을 참고 추가할 수 있습니다. 알고 있는 리소스 dll의 릴리스 버전과 실행 파일의 디버그 버전이 작동하지 것입니다.

      링커가 DLL의 각 빌드에 대해 사용하는 출력 대상 변경하여 수행할 수 있습니다.

      1. 프로젝트 설정연결 속성 페이지를 선택한 대화 상자.
      2. 에 있는 해당 설정 콤보-상자에서 DLL 출력 디렉터리를 변경하려는 구성 강조 표시합니다.
      3. 범주일반 으로 설정되어 있는지 확인하고 출력 파일 이름 아래에 있는 편집 상자에 출력 디렉터리 이름을 지정하십시오.
      예를 들어, 프랑스어에 대한 지역화된 리소스를 포함하는 DLL에 대한 Debug/ResourceDLL.dll 수 변경할 프랑스어 디버그/ResourceDLLd.FRA Win32 디버그 구성 및 변경 변경할 수 있는 Release/ResourceDLL.dll프랑스어 릴리스/ResourceDLL.FRA Win32 릴리스 구성에 대한.

      이러한 DLL 사용하려면 원하는 DLL MyApp.exe의 동일한 디렉터리 또는 적절한 Windows 디렉터리에 복사하고 ResourceDll.dll 또는 ResourceDllD.dll 이름 바꾸기 합니다. 예를 들면:

      ResourceDll.FRA\windows\system\ResourceDll.dll 복사

      각 지역화된 DLL에 [NULL]에 대한 리소스 파일을 MyApp.res, 생성된 디렉터리를 지정할 수도 있습니다.

      1. 프로젝트 설정 대화 상자에서 리소스 속성 페이지를 선택하십시오.
      2. 에 있는 해당 설정 콤보-상자에서 자원 출력 디렉터리를 변경하려는 구성 강조 표시합니다.
      3. 범주일반 으로 설정되어 있는지 확인하고 리소스 출력 파일에 리소스 파일 이름 아래에 있는 편집 상자에 위치가 생성될 디렉터리를 지정하십시오.
  6. 프로젝트 메뉴에서 설정 을 선택하고 ResourceDLL 프로젝트 강조 표시하십시오. 모든 구성 에서 선택할 경우 설정 For 콤보 상자. 다음에 의해 해당 전처리기C/C++ 탭을 클릭하여 범주. 추가 포함 디렉터리 필드에 MyApp 프로젝트의 경로를 추가하십시오.
  7. 프로젝트 메뉴, 선택 설정 및 강조 MyApp 에서 프로젝트. 모든 구성설정 대상 에서 선택 콤보 상자. 리소스 탭을 누르고 AFX_RESOURCE_DLL전처리기 정의 를 필드에 추가하십시오. 이 정의를 MyApp.exe의 에서 모든 리소스를 제거합니다.
  8. ResourceView 작업 영역에 있는 각 폴더를 열고 Ctrl 키와 함께 누를 MyApp 프로젝트에 있는 모든 리소스를 선택하십시오. 예를 들어, 선택 항목을 사용하여 IDR_MAINFRAME 액셀러레이터 및 IDD_ABOUTBOX의 대화 상자를 포함해야 합니다.

    각 ResourceDLL 구성을 삽입 메뉴에서 자원 복사 를 언어에 적절한 언어 설정 및 확인 을 누르십시오. 이제 전체 집합을 다른 언어에 대한 리소스가 있어야 합니다. 그러나 해당 리소스는 변환해야 합니다.

    지역화된 리소스를 만드는 데 사용할 언어를 언어 목록에 없는 경우, 다른 언어를 선택한 다음 수동으로 리소스 파일의 텍스트를 편집하십시오. 적절한 변경을 수행한 후 자원 옆의 괄호 것입니다 "알 수 없는 언어" 라고 및 언어와 보조 언어를 식별자를 표시.)

    참고: 이 지금은 리소스 파일을 기존 리소스를 복사할 수도 있습니다. 예를 들어, 별도의 MFC 응용 프로그램 마법사에서 만든 프랑스어 리소스를 사용하는 응용 프로그램 프로젝트 초기 MyApp 만드는 데 사용된 동일한 선택 사항을 사용하여 프로젝트. 이 응용 프로그램을 만든 후에 해당 작업 영역 및 MyApp 프로젝트 작업 영역을 연 닫고 ResourceView 선택하십시오. 다음 파일 메뉴에서 열기 를 클릭하고 프랑스어 응용 프로그램의 RC 파일을 엽니다. 이제 끌기/MyApp 응용 프로그램으로 프랑스어 응용 프로그램에서 모든 리소스를 놓기. 이러한 리소스를 이미 프랑스어로 및 변환이 필요합니다.
  9. HINSTANCE 멤버 변수를 추가할 응용 프로그램의 CWinApp 클래스에서 파생된 것입니다. 이 DLL 인스턴스 핸들을 보관합니다. 예를 들면:
       HINSTANCE m_hInstResDLL;
    						


    프로젝트의 CWinApp::InitInstance 정의 내에 다음 세 줄을 함수 맨 위에 추가하십시오.

    #ifdef _DEBUG
       // Load the debug version of the localized resources.
       m_hInstResDLL = LoadLibrary("ResourceDlld.dll");
    #else
       // Load the release version of the localized resources.
       m_hInstResDLL = LoadLibrary("ResourceDll.dll");
    #endif
       ASSERT( m_hInstResDLL != NULL );
    						


    참고: 이 시점에서 AfxSetResourceHandle() 호출할 필요가 없습니다.
  10. 클래스 사용하여 CMyApp::ExitInstance() 멤버 함수 추가 마법사. 라이브러리 응용 프로그램 종료 전에 해제 코드를 추가하십시오. 이 함수는 다음과 같이 수정하십시오.

    int CMyApp::ExitInstance()
    {
       // In case you load multiple DLL's make sure to free them,
       // and avoid calling FreeLibrary with a NULL pointer.
    
       FreeLibrary(m_hInstResDLL);
       return CWinApp::ExitInstance();
    }
    						


  11. 응용 프로그램을 빌드할 수 있습니다. 일괄 빌드 대화 상자를 사용하여 원하는 대상을 선택하십시오. 기억할 적절한 DLL로 복사해야 합니다 있는 적합한 위치 및 이름을 바꿉니다.

참조

기술 참고 56 (TN056) (MFC40LOC.DLL) 지역화된 MFC 리소스 사용하는 방법에 대해 설명합니다.

응용 프로그램 또는 OLE 제어, 또는 MFC 사용하는 DLL의 57 (TN057) 일부의 디자인 및 구성, 지역화할 수 있는 절차에 대해 설명합니다. 기술 참고 수 있습니다.

기술 참고 23 (TN023) 함께 제공되는 및 MFC 라이브러리에서 필요한 표준 리소스에 대해 설명합니다.

MFC 포함된 Visual C++ 버전 2.2 및 이전에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
147149 사용하여 Foundation 클래스 리소스에 지역화 방법"


(c) Microsoft의 1999년, 예약 모든 권한. Isaac Varon, Microsoft Corporation에 의해 기고물입니다.

속성

기술 자료: 198846 - 마지막 검토: 2004년 7월 1일 목요일 - 수정: 1.1
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Visual Studio 97 서비스 팩 3
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
키워드:?
kbmt kbhowto kbintl kbintldev KB198846 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
더 이상 지원되지 않는 제품의 KB 내용에 대한 고지 사항
이 문서에서는 Microsoft에서 더 이상 지원하지 않는 제품에 대해 설명합니다. 따라서 이 문서는 "있는 그대로" 제공되며 업데이트되지 않습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com