C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[54491] 여러 프로그램에서 로딩하는 Dll에서 Unicode, ANSI 문자열을 여러 프로그램 언어 설정에 맞게 처리하려면
이평섭 [wanglung] 1208 읽음    2008-09-05 13:32
안녕하세요.

메인 프로그램이 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하여 처리하면 되겠지만, 런타임 시점에서는 이러한 처리가 불가하니,
위와 같은 조건분기 방법이 먼저 생각이 납니다.

혹 다른 방법으로도 가능할까요.

의견 주시면 좋겠습니다.

좋은 하루 되시구요.

+ -

관련 글 리스트
54491 여러 프로그램에서 로딩하는 Dll에서 Unicode, ANSI 문자열을 여러 프로그램 언어 설정에 맞게 처리하려면 이평섭 1208 2008/09/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.