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

FireBird Q&A
[3436] IBPP 골치 아픈 문제 .. 유니코드 형식
안지훈 [honset] 2923 읽음    2010-05-11 10:54
IBPP로 원격으로 DB 파일 생성 및 테이블만들기 데이터쓰기, 지정 쓰기, 지정 불러오기, 전체 불러오기등등

을 구현 했는데요 간단히 사용할 수 있도록 제가 따로 조합해서 클래스를 만들어 놓았거든요.

한참을 하고 나서 다른 프로젝트에 턱 붙이려고하니까

IBPP 요놈이 멀티바이트 기반으로 되어있더라구요. 클래스 집어 넣을 코어 프로그램이 유니코드 형식으로 되어있어서

IBPP.cpp 에서 문자열 정보들을 다루는 부분에 많은 에러가 잡힙니다.

쿼리 문을 쓰는 기본 함수 부터 전부~

이를 어찌해야하나요 ..

유니코드 -> 멀티 바이트로 IBPP 바꾸는 법을 찾긴 했는데 이렇게해도 잘 되지 않습니다.

혹시 유니코드 형식으로 변환된 IBPP 를 가지고 계신분이나 혹 해결책을 알고 계신분은 있으신가요?



.///////////////////

bpp 유니코드환경으로 수정(hack)하기
Line 44: from #define REG_KEY_ROOT_INSTANCES "SOFTWARE\\Firebird Project\\Firebird Server\\Instances" to #define REG_KEY_ROOT_INSTANCES TEXT("SOFTWARE\\Firebird Project\\Firebird Server\\Instances")

Line 45: from #define FB_DEFAULT_INSTANCE "DefaultInstance" to #define FB_DEFAULT_INSTANCE TEXT("DefaultInstance")
Line 87: from ::OutputDebugString(("IBPP: " + p->str() + "\n").c_str()); to ::OutputDebugString((const TCHAR *) ("IBPP: " + p->str() + "\n").c_str());
Line 111: change char fbdll[MAX_PATH]; to TCHAR fbdll[MAX_PATH];
Line 142: change mHandle = LoadLibrary(path.c_str()); to mHandle = LoadLibrary((const TCHAR *) path.c_str());.
Note: There has got to be a cleaner way of doing this than just casting. Check MSDN or the Platform SDK for documentation on MultiByteToWideChar() under User Interface, International Text Display, Unicode and Character Sets.
Line 167: change char* p = fbdll + len; to TCHAR* p = fbdll + len;
Line 170: change lstrcat(fbdll, "\\fbembed.dll"); to lstrcat(fbdll, TEXT("\\fbembed.dll"));
Line 175: change lstrcat(fbdll, "\\fbembed.dll"); to lstrcat(fbdll, TEXT("\\fbembed.dll"));
Line 194: change lstrcat(fbdll, "bin\\fbembed.dll"); to lstrcat(fbdll, TEXT("bin\\fbembed.dll"));
Line 204: change mHandle = LoadLibrary("fbclient.dll"); to mHandle = LoadLibrary(TEXT("fbclient.dll"));
Line 209: change mHandle = LoadLibrary("gds32.dll"); to mHandle = LoadLibrary(TEXT("gds32.dll"));


출처:http://tnt64.blogspot.com/2007_04_01_archive.html

///////////////////////

+ -

관련 글 리스트
3436 IBPP 골치 아픈 문제 .. 유니코드 형식 안지훈 2923 2010/05/11
3440     Re:IBPP 골치 아픈 문제 .. 유니코드 형식 안지훈 5711 2010/05/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.