Q&A

  • [질문] 델파이의 데이터타입이, VC랑 어떻게 매칭되는지를 모르겠습니다.
델파이로 만든 DLL을 VC에서 기동을 시켜야 하는데요..
LoadLibrary, GetProcAddress은 어떻게 되서 주소값을 가져오는데, 가져온 주소값으로 함수를 실행시키면
자꾸 프로그램이 뻗네요 ㅠㅠ
[델파이 함수 원형]
function TEST_FUNC(sNo: string; var vrVT1: Variant; var vrVT2: Variant; var sMsg: string;
                         var cnt : LongInt) : Boolean; stdcall;

이걸 VC로 옮겨려면 어떻게 해야 하는지;;

BOOL TEST_FUNC(LPCTSTRsNo, variant_t &vrVT1, variant_t &vrVT2, LPCTSTR strMsg, long int &cnt);

일단 한번 바꾸긴 했는데;; 자꾸 에러가 나네요;
1  COMMENTS
  • Profile
    김동원 2009.03.03 18:36
    1. 델파이에서 사용되는 string은 VC와 호환되지 않습니다.
    VC와 호환되도록 하려면 PChar타입으로 정의되어야 합니다.

    function TEST_FUNC(sNo: string; --> szNo : PChar;
    var vrVT1: Variant;
    var vrVT2: Variant;
    var sMsg: string; --> szMsg : PChar;
    var cnt : LongInt) : Boolean; stdcall;

    2. Calling convension
    델파이 원형에 stdcall 이 포함되어 있으므로 VC 형식일 때도 __stdcall 이 포함되어야 합니다.
    BOOL __stdcall TEST_FUNC(LPCTSTRsNo, variant_t &vrVT1, variant_t &vrVT2, LPCTSTR strMsg, long int &cnt);

    도움이 되었길 바랍니다.