Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[11793] [질문]C 고수님들 부탁 드립니다.
최병련 [demisoft] 1543 읽음    2008-03-03 08:11
C로 작성된 아래의 프로그램이 델파이로 변환 하고 있습니다.

DLL Function을 부르는데 INVALID_PARAMETER 에러가 납니다.

어찌 해야 하는지요

제가 한부분은 아래에 있습니다.

==C==
* hearder filk */
#define MAX_HASH_LENGTH_OLD     40
#define MAX_HASH_LENGTH_EX      128
#define MAX_OIDSTR_LENGTH       128
#define MAX_NAME_LENGTH         512
#define MAX_TIME_LENGTH         32
#define MAX_SIGNATURE_LENGTH    1024
#define MAX_STATUS_LENGTH       80
#define MAX_BIGNUMBER_LENGTH    40
typedef enum
{
    TTI_RAW  = 0,
    TTI_TCP  = 1,
    TTI_HTTP = 2,
    TTI_SMTP = 3
} TTI_TransportFormat;
typedef struct TTI_BigNumber
{
    byte      number[MAX_BIGNUMBER_LENGTH];
    int       length;
} TTI_BigNumber;
typedef struct TTI_MessageImprintEx
{
    char      hashAlgorithmOid[MAX_OIDSTR_LENGTH];
    byte      hashedMessage[MAX_HASH_LENGTH_EX];
    int       hashedMessageLen;
} TTI_MessageImprintEx;
typedef struct TTI_TSQ_Ex
{
    size_t               size;
    TTI_MessageImprintEx messageImprint;
    char                 reqPolicyOid[MAX_OIDSTR_LENGTH];
    TTI_BigNumber        nonce;
    BOOL                 certReq;
} TTI_TSQ_Ex;

/* API Functions */
int TTI_EncodeTSQ_Ex( const TTI_TSQ_Ex *  pTSQ_Ex,
                      byte *              encodedReq,
                      size_t *            encodedReqLen,
                      TTI_TransportFormat transportFormat );
/* test.c */
{
  TTI_TSQ_Ex tsq;
  TTI_TransportFormat ttiTransport = TTI_TCP;
  byte    encodedTSQ[1024];
  size_t  encodedTSQLen = sizeof encodedTSQ;
  int     iResult;
  iResult  = TTI_EncodeTSQ_Ex( tsq, encodedTSQ, &encodedTSQLen, ttiTransport );
}

==DELPHI==
Const
  MAX_HASH_LENGTH_OLD             =   40;
  MAX_HASH_LENGTH_EX              =  128;
  MAX_OIDSTR_LENGTH               =  128;
  MAX_NAME_LENGTH                 =  512;
  MAX_TIME_LENGTH                 =   32;
  MAX_SIGNATURE_LENGTH            = 1024;
  MAX_STATUS_LENGTH               =   80;
  MAX_BIGNUMBER_LENGTH            =   40;
type
  TTI_TransportFormat = (TTI_RAW , TTI_TCP, TTI_HTTP, TTI_SMTP);
type
  TTI_BigNumber = Record
    number : Array[1..MAX_BIGNUMBER_LENGTH] of Byte;
    length : Integer;
  end;
type
  PTTI_MessageImprintEx = ^TTI_MessageImprintEx;
  TTI_MessageImprintEx = Record
    hashAlgorithmOid : Array[1..MAX_OIDSTR_LENGTH] of Char;
    hashedMessage    : Array[1..MAX_HASH_LENGTH_EX] of Byte;
    hashedMessageLen : Integer;
  end;
type
  PTTI_TSQ_Ex = ^TTI_TSQ_Ex;
  TTI_TSQ_Ex = Record
    size           : Integer;
    messageImprint : TTI_MessageImprintEx;
    reqPolicyOid   : Array[1..MAX_OIDSTR_LENGTH] of Char;
    nonce          : TTI_BigNumber;
    certReq        : Boolean;
  end;
//
function TTI_EncodeTSQ_Ex(const pTSQ_Ex : PTTI_TSQ_Ex; encodedReq : Pbyte; encodedReqLen : PInteger; transportFormat : TTI_TransportFormat):Integer; stdcall; external 'TTI.DLL';
//
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  tsq : TTI_TSQ_Ex;
  ttiTransport : TTI_TransportFormat;
  iResult : Boolean;
begin
  iResult := TTI_EncodeTSQ_Ex(@tsq, @encodedTSQ, @encodedTSQLen, ttiTransport);
  =============================================================================
이부분입니다.

한수 부탁 드립니다.

+ -

관련 글 리스트
11793 [질문]C 고수님들 부탁 드립니다. 최병련 1543 2008/03/03
11794     Re:[질문]C 고수님들 부탁 드립니다. cc1232 1620 2008/03/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.