반응형
구버전 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);
반응형
'Development > Visual C++' 카테고리의 다른 글
[C++/MFC] 시스템 설정 언어 정보 가져오기 GetLocaleInfo (0) | 2023.04.07 |
---|---|
fatal error C1189: #error: "No Target Architecture" (0) | 2023.04.07 |
std variant can not found 오류 시 (0) | 2022.12.23 |
[MFC, WIN32] Picture Control Bitmap Drawing, Resizing (0) | 2022.09.01 |
Resource Only DLL 제작 / 사용 방법 (0) | 2022.08.09 |
댓글