Q&A

  • DLL 동적 CALL시...
function Send(pFilename : Pchar; FileCount : integer): Integer;

stdcall; external 'My.DLL'

위와 같이 DLL call이 정적으로 선언되어있습니다.

그런데 동적으로 ini의 값에 따라



ini의 값이 1 이면

function Send(pFilename : Pchar; FileCount : integer): Integer;

stdcall; external 'My.DLL'



ini의 값이 2 이면

function Send(pFilename : Pchar; FileCount : integer): Integer;

stdcall; external 'You.DLL'

를 실행시켜



sendCnt := Send(cfile, fileList.Count);

의 값을 얻고 싶을때는 어떻게 해야 하나요?



그냥 동적call하는 방향으로 하면 external이 선언 안되어있다고 나오는데....



답변 부탁드려요..

1  COMMENTS
  • Profile
    최용일 2001.02.17 07:35
    안녕하세요. 최용일입니다.



    동적으로 DLL을 로딩할때는 external ... 부분을 빼세요...



    생각해보니까 정적으로 링크도 가능하네요...



    function Send_MyDll(pFilename : Pchar; FileCount : integer): Integer; stdcall; external 'My.DLL' name Send;

    function Send_YouDll(pFilename : Pchar; FileCount : integer): Integer; stdcall; external 'You.DLL' name Send;



    type

    TSendProc = function (pFilename : Pchar; FileCount : integer): Integer;

    var

    Send: TSendProc;

    begin

    Ini파일에서 값을 읽어온다.

    if (INI값 = 1) then

    Send := Send_MyDll

    else if (INI값 = 2) then

    Send := Send_YouDll;



    Send(파일이름, 파일카운트); // Send함수 실행...

    end;



    근데 이런경우 정적링킹은 별로 안좋은 방법이네요...



    ^^ 항상 즐코하세요...



    초보 wrote:

    > function Send(pFilename : Pchar; FileCount : integer): Integer;

    > stdcall; external 'My.DLL'

    > 위와 같이 DLL call이 정적으로 선언되어있습니다.

    > 그런데 동적으로 ini의 값에 따라

    >

    > ini의 값이 1 이면

    > function Send(pFilename : Pchar; FileCount : integer): Integer;

    > stdcall; external 'My.DLL'

    >

    > ini의 값이 2 이면

    > function Send(pFilename : Pchar; FileCount : integer): Integer;

    > stdcall; external 'You.DLL'

    > 를 실행시켜

    >

    > sendCnt := Send(cfile, fileList.Count);

    > 의 값을 얻고 싶을때는 어떻게 해야 하나요?

    >

    > 그냥 동적call하는 방향으로 하면 external이 선언 안되어있다고 나오는데....

    >

    > 답변 부탁드려요..