프로그래밍 노트

[델파이]Form이 있는 DLL 만들기 본문

델파이

[델파이]Form이 있는 DLL 만들기

띠리 2008. 12. 15. 16:57
델파이에서 Form이 있는 DLL만들기

먼저 File메뉴에서 Other를 선택한다.
사용자 삽입 이미지

New Items에서 DLL Wizard를 선택한다.

사용자 삽입 이미지

그리고 만들어진 DLL 프로젝트에서 오른쪽 클릭을 하여 Add New의 Form을 선택한다.

사용자 삽입 이미지

이렇게 하면 DLL에 폼을 추가하게 된다.
추가한 폼에 컨트롤들을 추가하고 이 폼에 대한 코딩을 한다.

사용자 삽입 이미지

폼 DLL을 확인하기 위한 프로그램을 만들기 위해서
ProjectGroup에서 오른쪽 클릭을 하여 Add New Project를 선택한다.

사용자 삽입 이미지

New Items에서 VCL Forms Application을 선택한다.

사용자 삽입 이미지


이렇게 작업하면 우선 폼이 있는 DLL을 테스트할 수 있는 환경이 갖추어진다.
(이 글을 전혀 델파이를 잘 모르는 사람을 위해 썼음)

사용자 삽입 이미지

DLL이니까 당연히 DLL에서 사용할 함수를 작성해야된다.
파일이름은 어떻게 적던 상관없다.
설명은 위 이미지의 파일명으로 설명한다.

폼DLL에 컨트롤을 추가하려면 uDllFrm.dfm을 더블클릭하면 컨트롤을 추가하거나
소스를 변경한다.

uDllFrm.pas(DLL 소스)에 DLL 함수를 추가한다.

//------------------------------------------------------------------------------
//    DLL 함수
//------------------------------------------------------------------------------
function GetDlgData(hOwner:HWND):string;stdcall;

exports
  GetDllDlgData;

implementation

{$R *.dfm}

function GetDlgData(hOwner:HWND):string;stdcall;
begin
  Application.Handle := hOwner;

  if frmDlg = nil then
    frmDlg := TfrmDlg.Create(application);

  frmDlg.ShowModal;

  result := frmDlg.btnTest.Caption;
  FreeAndNil(frmDlg);
end;



uDllDlgTest.pas(DLL 사용 소스)를 더블클릭하여 DLL함수를 선언한다.

var
  frmMain: TfrmMain;

implementation

//------------------------------------------------------------------------------
//    DLL 함수
//------------------------------------------------------------------------------

function GetDlgData(hOwner:HWND):string;stdcall; external 'dllDlg.dll';

{$R *.dfm}

procedure TfrmMain.btnTestClick(Sender: TObject);
begin
   pnlTest.Caption := GetDlgData(Application.Handle);
end;


참고 샘플
invalid-file

델파이 2006용

Comments