Q&A

  • c++로 만든 dll을 델파이에서 불러서 쓰려면....
c++로 만든 dll을 델파이에서 불러서 쓰려면 어떠케 해야 하나요??

이제 막 델파이를 시작한 왕초보라서 잘 모르겠네요...

버튼을 클릭하면 c++로 만든 dll을 호출하면서 edit에 입력된 2개의 값을 같이

넘기고 싶은데요....

어떠케 하는지 알려주세요...



3  COMMENTS
  • Profile
    하얀까마귀 2001.11.28 04:13
    안녕하세요 하얀까마귀 입니다.



    음... C에서 만든 DLL이든 델파이로 만든 DLL 이든 불러오는건 마찬가지 아닌가요?



    먼저 DLL 을 불러올려고 하면 어느 DLL정의를 해주어야 합니다.



    함수를 정의 하구요.

    function WMAAAFunction( aaa : PChar ) : HRESULT; stdcall;



    // 요렇게 정의 합니다.

    const

    WMAAADLL = 'WMAAA.dll';



    function WMAAAFunction; external WMAAADLL;



    요렇게 정의하면 WMAAAFunctin 이 WMAAA.dll 안에 정의되어 있다는 거죠..



    요렇게 해놓구 쓰시면 되요.



    타입같은건 확인하시구요. 그럼.. 즐거운시간 됫에ㅛ..



    제가 제대로 말씀을 이해하고 답변하는건지 모르겠네요..



    - 하얀까마귀 -





    왕초보 wrote:

    > c++로 만든 dll을 델파이에서 불러서 쓰려면 어떠케 해야 하나요??

    > 이제 막 델파이를 시작한 왕초보라서 잘 모르겠네요...

    > 버튼을 클릭하면 c++로 만든 dll을 호출하면서 edit에 입력된 2개의 값을 같이

    > 넘기고 싶은데요....

    > 어떠케 하는지 알려주세요...

    >

  • Profile
    왕초보 2001.11.28 04:37
    interface



    function NCRegFp(lpSaBun : integer): integer ; cdecl;



    implementation



    {$R *.DFM}



    function NCRegFp(lpSaBun : integer) : integer ; cdecl ;

    external 'RegisterFp.dll' name 'NCRegFp';



    procedure TForm1.Button1Click(Sender: TObject);

    var

    temp, strchar : integer;

    //str : string;

    begin

    strchar := strtoint(eNumber.text);

    temp := NCRegFp(strchar);

    NCRegFp(strchar);



    end;



    이렇게 했는데요...



    Project xxx.exe raised exception class EDBEngineError with message

    'An error occurred while attempting to initialize the Borland Database Engine(error $2501)'. Process stopped. Use Step or Run to continue.



    이런 에러가 났어요...

    왜그런건가요???





    하얀까마귀 wrote:

    > 안녕하세요 하얀까마귀 입니다.

    >

    > 음... C에서 만든 DLL이든 델파이로 만든 DLL 이든 불러오는건 마찬가지 아닌가요?

    >

    > 먼저 DLL 을 불러올려고 하면 어느 DLL정의를 해주어야 합니다.

    >

    > 함수를 정의 하구요.

    > function WMAAAFunction( aaa : PChar ) : HRESULT; stdcall;

    >

    > // 요렇게 정의 합니다.

    > const

    > WMAAADLL = 'WMAAA.dll';

    >

    > function WMAAAFunction; external WMAAADLL;

    >

    > 요렇게 정의하면 WMAAAFunctin 이 WMAAA.dll 안에 정의되어 있다는 거죠..

    >

    > 요렇게 해놓구 쓰시면 되요.

    >

    > 타입같은건 확인하시구요. 그럼.. 즐거운시간 됫에ㅛ..

    >

    > 제가 제대로 말씀을 이해하고 답변하는건지 모르겠네요..

    >

    > - 하얀까마귀 -

    >





  • Profile
    하얀까마귀 2001.11.28 05:01
    안녕하세요 하얀까마귀 입니다.



    음.. 이상하네요.. C++ 로 만든 DLL 이라고 하셧는데.. 왜 BDE 에러가 나죠??



    지금 보여주시는 소스로는 무엇이 문제인지 알수 없습니다.



    DLL 내에서의 에러일꺼라 생각되기는 하는데. 왜 BDE 에러가 나는지..헐..



    DLL 소스가 있다면 보고 싶네요..



    NCRegFp함수 내에서 잘못이 잇는것 같습니다.



    그럼 즐거운 시간 되세요..



    - 하얀까마귀 -



    왕초보 wrote:

    > interface

    >

    > function NCRegFp(lpSaBun : integer): integer ; cdecl;

    >

    > implementation

    >

    > {$R *.DFM}

    >

    > function NCRegFp(lpSaBun : integer) : integer ; cdecl ;

    > external 'RegisterFp.dll' name 'NCRegFp';

    >

    > procedure TForm1.Button1Click(Sender: TObject);

    > var

    > temp, strchar : integer;

    > //str : string;

    > begin

    > strchar := strtoint(eNumber.text);

    > temp := NCRegFp(strchar);

    > NCRegFp(strchar);

    >

    > end;

    >

    > 이렇게 했는데요...

    >

    > Project xxx.exe raised exception class EDBEngineError with message

    > 'An error occurred while attempting to initialize the Borland Database Engine(error $2501)'. Process stopped. Use Step or Run to continue.

    >

    > 이런 에러가 났어요...

    > 왜그런건가요???

    >

    >

    > 하얀까마귀 wrote:

    > > 안녕하세요 하얀까마귀 입니다.

    > >

    > > 음... C에서 만든 DLL이든 델파이로 만든 DLL 이든 불러오는건 마찬가지 아닌가요?

    > >

    > > 먼저 DLL 을 불러올려고 하면 어느 DLL정의를 해주어야 합니다.

    > >

    > > 함수를 정의 하구요.

    > > function WMAAAFunction( aaa : PChar ) : HRESULT; stdcall;

    > >

    > > // 요렇게 정의 합니다.

    > > const

    > > WMAAADLL = 'WMAAA.dll';

    > >

    > > function WMAAAFunction; external WMAAADLL;

    > >

    > > 요렇게 정의하면 WMAAAFunctin 이 WMAAA.dll 안에 정의되어 있다는 거죠..

    > >

    > > 요렇게 해놓구 쓰시면 되요.

    > >

    > > 타입같은건 확인하시구요. 그럼.. 즐거운시간 됫에ㅛ..

    > >

    > > 제가 제대로 말씀을 이해하고 답변하는건지 모르겠네요..

    > >

    > > - 하얀까마귀 -

    > >

    >

    >