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
[9950] 마이다스 AppServer 쓰는 방법을 알고 싶어요
Sunwine [haesul4078] 845 읽음    2001-08-16 13:20
아래의 글은 작년 말에 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      에 만든 메소드가 또야 하는데 이게 안뜨네요...
:
: 델파이에서는 별다른 것없이 위와 같이 했을때 떳거든요...
:
: 어떤 부분에서 잘못했는지 무엇을 더 해주어야 하는지를 모르겠습니다...
:
: 답변부탁드려요~~

+ -

관련 글 리스트
9950 마이다스 AppServer 쓰는 방법을 알고 싶어요 Sunwine 845 2001/08/16
9970     Re:마이다스 AppServer 쓰는 방법을 알고 싶어요 조로 887 2001/08/16
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.