Development/Visual C++
[MFC] 다국어 RC 제작 방법
qWooWp
2023. 1. 20. 09:55
반응형
구버전 Visual Studio , WDK 등은 Unicode 또는 해당 OS 와 맞지 않는 국가 코드로 Encoding 된
소스 코드는 빌드를 하지 못하는 버그 가 있습니다.
그래서 하나의 rc 파일에 유니코드 인코딩을 해서 다국어 테이블을 만들어도 빌드 오류를 발생 시킵니다.
하여 Unicode 인코딩을 하여 최신 버전 Visual Studio 2019 를 써서 개발함.
각 국가 별로 리소스 DLL 을 제작하여
String Table 을 추가 합니다.
리소스 제작 방법
1. 메뉴 > 새로 만들기 > 프로젝트
2. Windows 데스크톱 마법사
3. 선택 옵션
- 빈 프로젝트
- DLL 타입
4. 생성 후 프로젝트 속성을 연다.
링커 > 고급 > 위에서 두번째 항목인 "진입점 없음" 항목에
예 (/NOENTRY) 로 변경
각 DLL 을 제작 후 아래와 같은 코드로 로딩하여 리소스를 가져온다.
LANGID langid;
if (g_hGUIDll != NULL)
FreeLibrary(g_hGUIDll);
langid = PRIMARYLANGID(GetSystemDefaultLangID());
switch(langid & 0xFF)
{
case LANG_FRENCH:
g_hGUIDll = LoadLibrary("resfre.dll");
break;
case LANG_GERMAN:
g_hGUIDll = LoadLibrary("resger.dll");
break;
case LANG_SPANISH:
....
// Load String from Table
// iStrId : 리소스에 저장된 문자열 상수 값
// pRet 리턴되는 문자열을 담을 버퍼
// 255 : pRet 의 크기
LoadString(g_hGUIDll, iStrId, pRet, 255);
반응형