unit Mydata;
interface
function mybirthday(month:word):integer;
function myaddress(address:integer):string;
.
.
implementation
function mybirthday:integer;external 'MyData.DLL';
function myaddress:string;extermal 'MyData.DLL';
.
.
end;
책에서 보니까 이러한 방법을 정적으로 dll을 연결한 것이라구 하던데.
이 방법은 동적으로 메모리에 로드되어서 프로그램이 종료될때까지
있는거 아닌가요?
동적Dll 만드는 방법은 이렇게 나와 있던데..
type TFunc=function(address:integer);boolean;stdcall
var
h:THandle;
MyFunc:TFunc;
implementation
h:=loadlibrary('MyData.DLL');
@MyFunc:=GetProcAddress(h,'myaddress');
dll 사용--> myFunc(0);
동적이냐 정적이냐는 DLL이 메모리에 올라가는 시점에 따라서 구별해요...
아래와 같은 경우는 항상 프로그램이 실행될때 DLL이 같이 로드됩니다... 컴파일했을 때 이미 DLL을 로드하기 위한 코드들이 프로그램에 넣어져 있죠...
동적인 경우는 언제든지 필요할때마다 메모리에 올렸다 내렸다 할 수있는거구요... 물론 그만큼 DLL을 로딩하기 위한 코딩이 좀 더 복잡합니다.
^^ 항상 즐코하세요...