Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 파이어버드
- VB.NET
- Visual Studio 2005
- SQL
- dll
- winsock
- 셋업
- Visual Basic
- Firebird
- 파라미터
- SDK
- 초보
- 설치
- xml
- 기초
- c#
- vb
- 예제
- Delphi
- PostgreSQL
- MFC
- 문자열
- 델파이
- 데이터베이스
- WIN32 SDK
- MySQL
- 시리얼 통신
- 인스톨
- 입문
- 소니
Archives
- Today
- Total
프로그래밍 노트
[델파이]Form이 있는 DLL 만들기 본문
델파이에서 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 함수를 추가한다.
uDllDlgTest.pas(DLL 사용 소스)를 더블클릭하여 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;
// 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;
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