본문 바로가기
Delphi Tip/파일

DLL만들기와 사용방법

by MonoSoft 2023. 6. 28.
728x90
반응형

DLL만들기와 사용방법

728x90

 

 

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윈도우에 편집된 문자가 찍힌다.

 

728x90
반응형

'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

댓글