Procedure CallMe; external 'Call.Dll' name 'CallMe';
모 이렇게 됩니다.
동적인 방법은...
LoadLibrary를 사용하고, FreeLibrary를 사용하는 것입니다.
DLL에 들어있는 함수를 사용할 부분에서(미리 선언해줄 필요가 없죠.)
바로 불러서 쓰면 됩니다. 먼저 THandle과 TCallMe라는 변수는 선언을 해주어야 합니다.
먼저 유닛의 선언부에서 TCallMe = procedure; StdCall; 이라는 부분을 만들고요..
이제 사용하는 부분에서는 LibHandle : THandle; 을 선언하시고(함수 안에서 하던, 밖에서 하던.. 만약 FreeLibrary를 함수 안에서하면, 함수 안에서, 밖에서 하면 함수 밖에서 선언을 해야 합니다. 변수이니까요) 그리고 CallMe : TCallMe; 라고 선언을 하신후..
LibHandle := LoadLibrary('Call.Dll');
@CallMe := GetProcAddress(LibHandle,'CallMe');
어쩌구 저쩌구...사용하는 부분..
FreeLibrary(LibHandle);
이렇게 사용하시면 됩니다.
Pascal wrote:
> 안녕하세요
> 저는 현재 Programing을 공부하고 있는 학생인데 델파이에서 Fortran Power Station으로 만들어진 DLL화일을 호출하여 Program을 제작하려하는데 계속 오염된 DLL File에 접속
DLL을 사용하실때는 두가지 방법이 있습니다.
정적으로 로드하는 방법이 있고 동적으로 로드하는 방법이 있습니다.
보통은 (책같은데 나온것) 정적으로 DLL을 로드한 후에 사용을 하죠.
조금 실력이 있으신 분들은 동적으로 로드해서 사용을 하십니다.
정적으로 하는 방법은
implementation 위에 함수를 정의하시고 밑에서 인덱싱을 해주는것입니다.
예)
procedure CallMe(Name, Tel: String); StdCall;
implementation
Procedure CallMe; external 'Call.Dll' name 'CallMe';
모 이렇게 됩니다.
동적인 방법은...
LoadLibrary를 사용하고, FreeLibrary를 사용하는 것입니다.
DLL에 들어있는 함수를 사용할 부분에서(미리 선언해줄 필요가 없죠.)
바로 불러서 쓰면 됩니다. 먼저 THandle과 TCallMe라는 변수는 선언을 해주어야 합니다.
먼저 유닛의 선언부에서 TCallMe = procedure; StdCall; 이라는 부분을 만들고요..
이제 사용하는 부분에서는 LibHandle : THandle; 을 선언하시고(함수 안에서 하던, 밖에서 하던.. 만약 FreeLibrary를 함수 안에서하면, 함수 안에서, 밖에서 하면 함수 밖에서 선언을 해야 합니다. 변수이니까요) 그리고 CallMe : TCallMe; 라고 선언을 하신후..
LibHandle := LoadLibrary('Call.Dll');
@CallMe := GetProcAddress(LibHandle,'CallMe');
어쩌구 저쩌구...사용하는 부분..
FreeLibrary(LibHandle);
이렇게 사용하시면 됩니다.
Pascal wrote:
> 안녕하세요
> 저는 현재 Programing을 공부하고 있는 학생인데 델파이에서 Fortran Power Station으로 만들어진 DLL화일을 호출하여 Program을 제작하려하는데 계속 오염된 DLL File에 접속