|
안녕하세요
클라이언트 플그램에서 서버쪽에서 만들어진 xxxxx_tlb.h를 인클루드 해주세요
그안에 님의 ISimpleMidas2에 관한게 선언 되어있습니다~~
그럼 즐거운 하루 되세여...
Sunwine 님이 쓰신 글 :
: 아래의 글은 작년 말에 bcbdn.com Q&A에 있던 글입니다.
: 이 글과 같은 작업을 제가 하고 있느데
: AppServer와 관련해서 이해를 잘 못해 이렇게 질문을 합니다.
: 아래글중
:
: ---------------------------------------------------------------------------
: 빌더는 SocketConnectino1->AppServer->... 이런식으로 접근하지 않습니다.
: AppServer는 IDispatch Interface로 여기서 우리가 필요로하는 그러니까
: 김병훈님께서 만드신 함수를 갖고있는 인터페이스를 Query해와야 합니다..
: 빌더 예제에 잘나와 있으니 그걸 여기 써드리지요..
:
: IDispatch* disp = (IDispatch*)(MyConnection->AppServer)
:
: // 제가보기에 밑에 줄은 타입캐스팅이 아니라 ATL 스마트 포인터 클래스로 내부적으로
: // QueryInterface를 하고 있는 것 같습니다. 아님 말죠..
:
: IMyAppServerDisp TempInterface( (IMyAppServer*)disp);
:
: TempInterface.SpecialMethod(x,y);
: ----------------------------------------------------------------------------
:
: 여기에서 IMyAppServerDisp란 것이 연결하고자 하는 서버의 이름인것 같은데
: 이방법하여 클라이언트 프로그램에서 컴파일하면 선언이 잘못 되었다고 합니다.
: 제가 만든 midas 서버 이름은 SampleMidas2로 저는 다음과 같이 했습니다.
: (서버에 로그인 관련 메소드를 만들었고 클라이언트에선 SocketConnection1의
: OnLogin에서 아래와 같은 방법으로 서버의 메소드를 실행하려고 합니다.)
:
: void __fastcall TDataModule1::SocketConnection1Login(TObject *Sender,
: AnsiString Username, AnsiString Password)
: {
: IDispatch* disp = (IDispatch*)(SocketConnection1->AppServer) // line 1
: ISampleMidas2Disp TempInterface((ISampleMidas2*)disp); // line 2
: TempInterface.Login(Username, Password); // line 3
: }
:
: 이와 같이 하면 line2에서
: Declaration syntax error
: undefined symbol 'TempInterface'
: 라는 에러가 납니다.
:
: 어떤방식으로 해야 되는지 제가 뭘 잘못했는지 알고 싶습니다.
: 아래는 그당시의 Q&A 원문입니다.
:
:
: ============================ 아래 글 ===================================================
: 안녕하세요
:
: 빌더는 SocketConnectino1->AppServer->... 이런식으로 접근하지 않습니다.
: AppServer는 IDispatch Interface로 여기서 우리가 필요로하는 그러니까
: 김병훈님께서 만드신 함수를 갖고있는 인터페이스를 Query해와야 합니다..
: 빌더 예제에 잘나와 있으니 그걸 여기 써드리지요..
:
: IDispatch* disp = (IDispatch*)(MyConnection->AppServer)
:
: // 제가보기에 밑에 줄은 타입캐스팅이 아니라 ATL 스마트 포인터 클래스로 내부적으로
: // QueryInterface를 하고 있는 것 같습니다. 아님 말죠..
:
: IMyAppServerDisp TempInterface( (IMyAppServer*)disp);
:
: TempInterface.SpecialMethod(x,y);
:
: 이런식으로 하면 됩니다..
: 그럼 즐거운 하루 되십시요.
:
: 김병훈 님이 쓰신 글 :
: : 빌더로 마이다스를 이용하여 서버를 만들고 만든 서버의 타입 라이브러리에
: :
: : 새로운 메소드를 추가하였습니다...
: :
: : 그리고나서 클라이언트에서는
: :
: : 소켓컨넥션으로 서버와 연결을 성공 하였습니다..
: :
: : 그 다음에 아까 서버쪽의 타입라이브러리에 새로 작성한 메소드가
: :
: : SocketConnection1->AppServer 에 만든 메소드가 또야 하는데 이게 안뜨네요...
: :
: : 델파이에서는 별다른 것없이 위와 같이 했을때 떳거든요...
: :
: : 어떤 부분에서 잘못했는지 무엇을 더 해주어야 하는지를 모르겠습니다...
: :
: : 답변부탁드려요~~
:
|