현재 대부분의 시스템 개발은 여러 사람 이상이 함께 협력하는 방식으로 이루어지며, 이는 시스템의 빠른 개발을 촉진하기도 합니다.
DLL 방식이 가장 편리합니다. 나는 도움이 필요한 일부 학생들에게 도움이 되기를 바라며 이 분야에 대한 몇 가지 정보를 편집했습니다. (처음 배우기 시작했을 때 조언을 구하는 것은 생각조차 할 수 없었던 일이었습니다.) //(원본 복사)
1. 함수 프로시저 작성 방법:
라이브러리FIRSTDLL;
용도
SysUtils,
수업;
{$R *.RES}
// 1. 함수의 특정 프로세스 및 출력 인터페이스 모드를 정의합니다.
//--------------------------------
// 함수 1
// 기능: 데이터 3배 증폭 기능
//--------------------------------
함수 BBnToSSnn(SourceResult:Integer):Integer;stdCall;
시작하다
SourceResult>0이면
Result:=SourceResult+3 //결과는 Result에 저장됩니다.
또 다른
결과:=소스결과;
끝;
수출
BBnToSSnn; //2. 함수 출력 포트 정의
끝.
==
==
2. DLL에서 양식 만들기
=======================
1. 한 단계로 DLL 프로젝트를 생성하고 양식 세트를 추가합니다.
도서관 MGRPERSN;
용도
SysUtils,
수업,
'MGRPERFM.pas'의 MGRPERFM {FormPERSON};//1.양식 코드(일반 양식과 동일)
{$R *.RES}
수출
ShowPerSN;//2. 함수 출력 포트 정의
시작하다
끝.
2. DLL에 설정된 Form 설정
===========================================
단위 MGRPERFM;
인터페이스
용도
Windows, 메시지, SysUtils, 클래스, 그래픽, 컨트롤, 양식, 대화 상자,
ComCtrls, ToolWin, ImgList;
유형
TFormPERSON = 클래스(TForm)
사적인
{비공개 선언}
공공의
{공개 선언}
끝;
//이 위치의 변수는 더 이상 사용되지 않으므로 다음과 같이 다른 위치로 변경하십시오(하나 변경).
//var
// 양식PERSON: TFormPERSON;
{양식 기능 종료 알림}//변경 2
함수 ShowPerSN(AHandle: THandle; ACaption: 문자열):BOOL;
구현
{$R *.DFM}
//함수 데이터 프로세스 정의
함수 ShowPerSN(AHandle: THandle; ACaption: 문자열):BOOL;
var
FormPERSON: TFormPERSON; //양식 클래스 정의(위 내용은 여기에 있음)
시작하다
//응용 프로그램 핸들을 DLL의 적절한 프로그램 개체에 복사합니다.
application.Handle := AHandle;
FormPERSON := TFormPERSON.Create(Application);//컨트롤 TForm 생성
노력하다
FormPERSON.Caption := ACaption;
FormPERSON.ShowModal;//이 양식 표시
결과 := False; //성공 값을 반환합니다.
마지막으로
양식PERSON.무료;
끝;
끝;
3. DLL에서 함수 및 양식 호출
==========================
1. 호출 방법 1
---------------
구현 // 아래에 함수를 호출하는 DLL을 작성합니다.
{$R *.DFM}
//DLL 내에서 함수 호출
함수 BBnToSSnn(SourceResult:Integer):Integer;
StdCall 외부 'FIRSTDLL.DLL';
........
2. 호출 방법 2
==============
type //여기서 함수 클래스를 생성합니다.
// 1 ----------------------------------
TShowPerSN = 함수(AHandle: THandle; ACaption: 문자열): BOOL;
EDLLLoadError = class(Exception); //오류 레코드 클래스를 동시에 생성합니다.
// 1 ----------------------------------
TMAINCLTR = class(TForm) //여기서 변경 사항이 없습니다. 시스템이 자동으로 생성합니다.
...
절차 TMAINCLTR.ToolButton1Click(Sender: TObject);
var //버튼 호출 이벤트: 프로세스 호출
LibHandle: THandle;
ShowPerSN: TShowPerSN;
시작하다
Application.Title:='인사관리 시스템 DLL 파일 테스트 프로그램';
{DLL 로드 시도 DLL 파일 로드 시도}
LibHandle := LoadLibrary('MGRPERSN.DLL');
노력하다
LibHandle = 0이면
raise EDLLLoadError.Create('MGRPERSN.DLL을 성공적으로 로드할 수 없습니다.');
@ShowPerSN := GetProcAddress(LibHandle, 'ShowPerSN');
그렇지 않은 경우(@ShowPerSN = nil)
ShowPerSN(Application.Handle, '인사정보관리')//양식 불러오기
또 다른
raiseLastWin32Error;
마지막으로
FreeLibrary(LibHandle); // DLL을 언로드합니다.
끝;
끝;
============== 끝 ===================
작성자 블로그: http://blog.csdn.net/dgc/