Q&A

  • Active Form으로 포인터(레퍼런스) 형 파라미터 전달하기
사정이 있어서
메인 어플리케이션은 VC++로 만들고,
VC++로 구현하기 까다로운 것들은
Delphi를 이용해서 Active-Form 으로 만들어서
메인 어플리케이션에 붙이고 있습니다.

함수나 이벤트핸들러를 통해서
문자형이나 숫자형의 데이타를 주고받는데에는 문제가 없는데,
객체의 포인터 ( 참조 또는 레퍼런스라고 하는..)를 주고 받으려면
어떻게 해야 하는건지

지금 당장 필요한것은 메인 어플리케이션의 ADOConnection 객체 포인터를
Active-Form 에 전달해 주는것과
Active-Form 안에 있는 ADOConnection 객체 포인터를
메인 어플리케이션으로 얻어오는것입니다...

알려주시면 정말 감사하겠습니다 ^^
4  COMMENTS
  • Profile
    최용일 2005.05.24 22:08
    안녕하세요. 최용일입니다.

    서로 다른 언어들간의 객체는 호환되지 않습니다. 델파이에 있는 객체를 C++에서 사용못하고 C++의 객체를 델파이에서 사용못합니다.

    방법을 달리 하시는것이 좋을듯... COM을 이용하는것도 한 방법이 될듯하지만... 난이도가......

    질문에 쓰신것처럼 메인어플<->ActiveForm 같의 모든 통신도 함수나 이벤트핸들러를 통해서 하시는것이...

    ^^ 항상 즐코하세요...

  • Profile
    이수열 2005.05.24 23:21
    답변 고맙습니다 ^^

    그런데 또 한가지 궁금한게 생겨서요...

    ADOConnection 객체도 ActiveX 객체이기 때문에 될거라구 생각했었는데
    안된다면 어쩔수 없지만요

    전에 ASP로 웹페이지 만들때 사용하던건데요..
    "UltraGrid"라는 상업용 그리드 컴포넌트( ActiveX )를 웹페이지에 놓고
    클라이언트 스크립트를 자바스크립트 대신에
    VB 스크립트를 사용해서 ADORecordSet 객체를 생성하고는
    그 그리드 객체에게 전달해 주는것을 보았습니다..
    그렇게 해서 ADORecordSet의 내용을 그리드에 보여주는것이었지요.

    그것으로 보아 ADO 객체 포인터를 다른 ActiveX 객체에게 전달하는 무슨 방법이 있을거라고
    생각이 드는데요...

    만약  제가 메인 어플을 VC++ 로 만들지 않고 Delphi 로 만들어서
    Acitve-Form(Delphi로 만든 놈)에게 ADOConnection의 포인터를 전달해 주려고 한다면
    가능할까요?

    이것도 불가능하다면 어쩔수 없지만...
    가능하다면 한수 가르쳐 주시면 감사하겠습니다 ^^

  • Profile
    최용일 2005.05.25 22:11
    글쎄요...

    델파이의 TADOConnection에서 사용하는 인터페이스는 IUnknown, ConnectionEventsVT과 속성으로 지정된 ConnectionObject, Properties등인데... 여기에 해답이 있을지도 모르겠군요...

    이전에도 말씀드렸지만 객체자체는 언어간에 호환이 안됩니다. COM의 Interface라면 상관없지만...

    UltraGrid<=>VB도 레코드셋과 관련된 COM Interface를 넘겨줬던걸로 추측이 되네요...

  • Profile
    이수열 2005.05.30 08:06
    .