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이 선언 안되어있다고 나오는데....
답변 부탁드려요..
동적으로 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이 선언 안되어있다고 나오는데....
>
> 답변 부탁드려요..