Q&A

  • C++로 제작된 DLL 호출시 넘 갑갑해여
카드 결재때문에 VAN사에서 제공된 통신DLL을 호출 해야 합니다...
DLL 의 FUNCION 3개를 써야 하는데요..  

실행화일과 같은 폴더에 dll을 넣었구요....
dll명은 cardcall.dll 입니다.

void SetServer( char *pIP, int nPort )   -> 리턴 없슴 ..서버설정
     --예 SetServer("211.192.167.38',10014)  

   리턴값   : 없슴.
   파라미터 : 서버아이피(입력)  , 포트번호(입력)  

  
int SetLogFile( int nFlag, char *pLogFile )
   리턴값   : 성공 >= 0    , 실패 = -1
  파라미터 : 로그파일을남기는경우1/남기지 않음 2 (입력) ,  로그파일저장경로(입력)



int AuthRequest( PGFAuthResAppr *pAuthResAppr,                  
                           char *pTrdType   , char *pTermID  , char *pMchData,
                           char *pTrackData, char *pSwipe    , char *pMonth,
                           char *pTradeAmt , char *pSvcAmt  , char *pTaxAmt,
                           char *pAuNo        , char *pAuDate  , int nCrypFlag )

   리턴값    : 성공 = 0    , 실패 < 0  , timeout = -2
   파라미터 :  pAuthResAppr (승인 응답 전문이 담길 구조체의 포인터) 출력,
                    pTrdType   업무구분 (입력)
                            .
                            .
                            .
                            .



요렇게 3개 함수를 콜해서 쓰면 되는데요...
dll을 정적으로 로드해서 쓰려 합니다..계속적이 작업이 반복되서..메모리에 로드시켜
쓸려구요...

그러면 어떻게 델파이로 함수를 선언하고 실행을 해야 할까요?
넘 넘 답답합니다.
특히 3번째 함수 를 호출해서 받는 pAuthResAppr (승인 응답 전문이 담길 구조체의 포인터) 요넘을 어떻게
받아서 처리해야하는지 막막합니다..


어떻게 델파이로 선언하고...실행은 버튼클릭시 edit로 입력 된값들을 함수호출시 입력
후 넘기면 되거든요...

선언 방법하고 실행방법좀 부탁드립니다...
C++ 문외한이라 책을 보면서 이해는 하고 있는데..도무지 감을 못잡겠네요

예상 작업은
1. DLL 로드  
2. FUCTION 호출    
3. 에러 처리..

2  COMMENTS
  • Profile
    셋쇼마루 2005.03.15 20:21



    1. <!--CodeS-->
    function SetLogFile(
      nFlag: Integer;
      pLogFile: PChar
    ): Integer; stdcall; external 'cardcall.dll';
    <!--CodeE-->

    2. & 3. <!--CodeS-->
    var
      pLogFile: PChar;
      wLogFile: string;
      ret: integer;

    wLogFile := 'C:\LogCardCall\log.txt';
    StrPCopy(pLogFile, wLogFile);
    ret := SetLogFile(1, pLogFile);
    if (ret < 0) then ERROR_ROUTINE;
    <!--CodeE-->
  • Profile
    초보임당 2005.03.15 20:30





    답변 감사합니다...

    그런데 3번째 함수 를 콜한 후에 구조체로 된 값을 넘겨 받아야 하거든요...이건 어떻게 처리해야 하나요?