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
[63864] SAFEARRAY 형 인수의 함수콜 방법좀 알려주세요 .
kipaik [kipaik] 1667 읽음    2011-03-03 17:34
제가 비주얼베이직에서 사용하고 있는 DLL 을 빌더에서 Type_Library 를 이용하여 콤포넌트로 추가 하였습니다.
OLE Automation 과 연관 있는 건데요.
아래는 비주얼 베이직에서는 아래와 같이 함수를 콜 하는데..

   
    Public EuroThermComName As String 
    Public EuroThermPV(8) As String

    Dim ItemServerHandles() As Long     ' Server Handle ( OPCServer -> OPCCleint )
    Dim ClientHandles(1) As Long        ' Client Handle ( OPCServer <- OPCCleint )
    Dim OPCItemIDs(1) As String         ' OPC ItemName
    Dim Errors() As Long
    Dim I As Integer


    ClientHandles(1) = 1
    OPCItemIDs(1) = Trim(EuroThermComName & EuroThermPV(I))

    OPCMyPVitems.AddItems 1, OPCItemIDs, ClientHandles, ItemServerHandles, Errors  ''', RequestedDataTypes, AccessPaths


이 함수가 C빌더로 넘어와서 해당 클래스를 보면 ,

아래와 같습니다 .

template <class T> HRESULT __fastcall
OPCItemsDispT<T>::AddItems(long NumItems/*[in]*/, LPSAFEARRAY* ItemIDs/*[in]*/,
                           LPSAFEARRAY* ClientHandles/*[in]*/, LPSAFEARRAY* ServerHandles/*[out]*/,
                           LPSAFEARRAY* Errors/*[out]*/, VARIANT RequestedDataTypes/*[in,opt]*/,
                           VARIANT AccessPaths/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddItems"), DISPID(DISPID_UNKNOWN/*[1610743820]*/));
  TAutoArgs<7> _args;
  _args[1] = NumItems /*[VT_I4:0]*/;
  _args[2] = ItemIDs /*[VT_SAFEARRAY:1]*/;
  _args[3] = ClientHandles /*[VT_SAFEARRAY:1]*/;
  _args[4] = ServerHandles /*[VT_SAFEARRAY:1]*/;
  _args[5] = Errors /*[VT_SAFEARRAY:1]*/;
  _args[6] = RequestedDataTypes /*[VT_VARIANT:0]*/;
  _args[7] = AccessPaths /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}


이 함수에 콜을 할때 인수를 어떻게 넘겨줘야 할지 전혀 모르겠습니다.

OPCMyPVitems->AddItems( 1 , ?? , ?? , ?? , ?? );

뒤에 인수 2개는 option 으로 안줘도 되는데.. SAFEARRAY 형태는 어떻게 변수를 설정해서 넘겨줘야 할지..

도와주세요...

+ -

관련 글 리스트
63864 SAFEARRAY 형 인수의 함수콜 방법좀 알려주세요 . kipaik 1667 2011/03/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.