|
안녕하세요.
메인 프로그램이 2가지 버전이 있습니다.
ANSI 문자열을 사용한 버전, 또 하나는 UNICODE 문자열을 사용한 버전
두가지 버전 각각에서 Dll를 각각 로딩하여 이 Dll에서 한글을 처리하여 메인프로그램에 전달 하려고 합니다.
이 Dll의 한가지 기능인 사용자 이름을 돌려주는 함수 UserName()을 메인프로그램에서 호출한다고 하면,
이 때 ANSI 버전에서는 사용자 이름이 ANSI로, UNICODE버전에서는 UNICODE로 사용자 이름을 처리하고자 합니다.
물론 각 버전에 맞는 ANSI, UNICODE 버전별 Dll를 배포해도 되지만, 한개의 Dll로(물론 배포는 각각버전에 각각 Dll을 합니다)로 처리하고자 합니다.
가능한 방법으로는 메인프로그램이 ANSI버전인지, UNICODE버전인지를 확인하여 각 버전에 맞게 분기하여 처리하는 것입니다.
대략 다음과 같은 처리가 되겠지요.
kVersion = GetMainProgramVersion();
if (kVersion == ANSI_VERSION)
{
return ANSI_GetUserName();
}
else if (kVersion == UNICODE_VERSION)
{
return UNICODE_GetUserName();
}
컴파일 시점에서는 UNICODE 를 #define하여 처리하면 되겠지만, 런타임 시점에서는 이러한 처리가 불가하니,
위와 같은 조건분기 방법이 먼저 생각이 납니다.
혹 다른 방법으로도 가능할까요.
의견 주시면 좋겠습니다.
좋은 하루 되시구요.
|