DLL만들기와 사용방법
DLL를 만들기가 어렵다고 생각하시는 분이 있는데 그렇지 않습니다.
DLL에 관한 이해는 다른분들도 많이 올려 놓으신것 같아서
여기서는 작성방법과 사용법에 대해서만 올려드립니다.
설명에서 FILE / NEW 라고 쓰여 있으면 FILE에 들어가서 NEW를 선택하라는 뜻입니다.
DLL 만들기
0, DELPHI 실행
1, FILE / NEW / DLL
2, FILE / NEW FORM 또는 NEW DATA MODULE ( UNIT1.PAS나 FORM이 설정된다. )
3, unit1.pas내에 implementation이라는 구절 아래에 다음과 같이 타이핑한다.
function min(i,j:integer):integer;
var
p:integer;
begin
if i>j then
p:=j
else
p:=i;
result:=p;
end;
function max(i,j:integer):integer;
var
p : integer;
begin
if i else p:=i;
result := p;
end;
4, type 와 var 사이에 위에 작성된 함수를 선언한다.
function min(i,j:integer):integer; export;
function max(imj:integer):integer; export;
5, project1.dpr로 편집기를 이동한다.
use와 begin-end사이에 프로그램 함수를 등록한다.
library uses unit1 in 'unit1.pas' // 자동으로 설정되어 있다.
exports // 타이핑한다.
min,
max;
begin
end.
6, FILE / SAVE PROJECT AS
( 제작된 DLL파일를 바꾸어서 저장한다
여기서는 UNIT1.PAS를 U1.PAS로 하고, PROJECT1.DPR를 P1.DPR로 하였다. )
7, PROJECT1 / BUILD ALL
( 컴파일과 릴트를하면 DLL이 만들어 진다. )
P1.DLL만들어짐 응용 프로그램에서 DLL를 사용 방법 출처 입력
1, FILE / NEW / APPLICATION
2, UNIT1.PAS 소스에 implementation 아래에 다음과 같이 선언한다.
implementation { $R *.DFM }
function min(i,j:integer):integer;
far; external 'p1.dll'
function max(i,j:integer):integer;
far; external 'p1.dll'
3, 컴퍼넌트에서 button을 선택하고, form에 위치시킨다.
4, edit를 선택하고 form에 위치시킨다.
5, button1을 더블클릭한다.
6, 아래와 같이 타이핑 한다.
버튼클릭한부분
begin
edit1.text:=inttostr(min(10,20));
end;
7, project/ build all한다.
8, run를 gksek.한다.
9, buton1을 누른다.
10, 결과가 10이 나온다.
DLL 폼을 만들어 넣는 방법
1, 델파이메뉴에서 FILE / NEW / DLL
2, 델파이메뉴에서 FILE / NEW FORM -> FOMR1과 UNIT1.PAS이 생성
3, 델파이메뉴에서 FILE / SAVE PROJECT AS -> EDIT1.PAS와 EDIT.DPR로 선언
4, 컴퍼넌트 edit1를 클릭하여 폼(form1)에 위치시킨다.
5, 컴퍼넌트 bitbtn1를 선택하여 폼(form1)에 위치시킨다.
6, UNIT1.PAS내의 var과 implementation사이에 변수 s를 선언한다.
{전역 변수로 선언해야 edit1.text의 데이터를 전달할 때 윈도우연산에러가 나오지 않는다.}
var
Form1: TForm1; <- delphi가 만든 것 s:string; <- 선언된
string s:=edit1.text용
implementation < delphi가 만든 것
7, 폼 위에있는 bitbtn1버튼을 더블클릭한후 다음과 같이 타이핑한다.
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
s:=edit1.text; <- 프로그래머가 타이핑 , EDIT1.TEXT가 전역변수 S에 대입된다.
close;
end;
8, 편집된 edit1.text의 데이터를 리턴해준다.
implementation
{$R *.DFM}
function ed(ss:string):string; <- 프로그래머가 작성
var
eed:Tform1;
begin
eed:=Tform1.create(application);
eed.edit1.text:=ss;
eed.Showmodal;
Result :=s;
end;
9, EXPORT를 선언한다.
type
-----
-----
end;
function ed(ss:string):string; export; <- EXPORT선언 ----------implementation ----------
10,델파이메뉴에서 EDIT.PDR로 코드변집기를 이동하여 아래와 같이 선언한다.
{ USES절과 BEGIN-END사이에 }
uses
exports <- eport선언 ed; <- function ed(ss:string):string을 선언
begin
end;
11, project / built all 선택 -> edit.dll 이 생성됨
DLL 폼 사용방법
1, 델파이메뉴에서 FILE / NEW / application
2, 컴퍼넌트에서 button을 선택하여 폼에 위치 시킨다.
3, // edit를 선택하여 // // //
4, implementation아래에 다음과 같이 선언 한다.
implementation
{$R *.DFM}
function ed(ss:string):string;
far;external'edit.dll'; <- edit.dll에 있는 ed함수를 사용한다.
5, 폼내에 있는 button1를 더블클릭한다.
procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.text:=ed(edit1.text);
end;
6, 컴파일링크한후 실행한다.
7, button1를 클릭하면 edit.dll이 윈도우에 뜬다.
8, edit1에 문자를 타이핑하고,button1를 누르면 dll폼이 사라지면서 project1윈도우에 편집된 문자가 찍힌다.
'Delphi Tip > 파일' 카테고리의 다른 글
델파이 리소스(Resource) (0) | 2023.09.26 |
---|---|
프로그램간의 메모리공유 (0) | 2023.07.05 |
DLL(Dynamic-link library)란 (5) (0) | 2023.06.27 |
DLL(Dynamic-link library)란 (4) (0) | 2023.06.26 |
DLL(Dynamic-link library)란 (3) (0) | 2023.06.23 |
댓글