답글 감사합니다.
어제 이것 저것 하다가 구글 검색에서 다른쪽 문제로 비슷한게 있어서
여러 가지 방향으로 접근해봤는데요. 문제는 WideString을 사용해야하는군요.
6.0에서는 WideString이 BSTR로 바로 타입케스팅이되었는데
2010에서는 안되서 다른 방법으로 BSTR을 만들었더니 문제가 생기네요.
WideString에 c_bstr() 메소드가 있다는 사실을 몰랐네요.. ㅡㅡ;;
void __fastcall TForm1::FormCreate(TObject *Sender)
{
char szMsg[256];
int nReturn;
WideString wsCfgFile = "Sample.cfg";
// Initialize the XCom control.
// 문자열을 WideString으로 케스팅하고 그것을 다시 BSTR로 케스팅해야 정상동작함.
// 그냥 어거지로 wchar_t * 형을 맞춘다고 되는게 아님.. ㅡㅡ;;
if( (nReturn = eXCom1->Initialize( wsCfgFile.c_bstr() )) == 0 ) {
lstbxMsg->Items->Add( "XCom initialized successfully" );
}
else {
sprintf( szMsg, "Fail to initialize XCom (%d)", nReturn );
lstbxMsg->Items->Add( szMsg );
}
}
pLst 님이 쓰신 글 :
: 답변은 아니고....
:
: 2009에서 잘 동작했습니다.
:
: 혹시 xCom 버젼은 최신으로 설치 되셨는지요?
:
: 1년여가 넘어서 기억이 가물 가물 하지만...
: 그때 어떠한 문제가 있어서 업체에 문의하다보니,
: xCom 버전에 따라 문제가 발생하는 경우가 있더라구요..
: 최신으로 설치해서 해결한적이 있었습니다.
:
:
:
: 송신영 님이 쓰신 글 :
: : 초기 Initialize() 함수가 정상적으로 동작 되나요?
: : C++ Builder 6.0 버전에서는 정상적으로 동작되는데
: : 2010에서 돌리면 Initialize() 함수에서 프로그램이 죽어버리네요..ㅜ.ㅜ
: : 혹시 이런 문제 경험해보신분 있으신가요?
|