ในปัจจุบันการพัฒนาระบบส่วนใหญ่จะดำเนินการในลักษณะการทำงานร่วมกันตั้งแต่หลายคนขึ้นไปซึ่งยังเอื้อต่อการพัฒนาระบบอย่างรวดเร็วอีกด้วย
วิธี DLL นั้นสะดวกที่สุด ฉันได้รวบรวมข้อมูลในด้านนี้โดยหวังว่าจะช่วยเหลือนักเรียนบางคนที่ต้องการความช่วยเหลือ (ฉันจำได้ว่าเมื่อเริ่มเรียนครั้งแรก การขอคำแนะนำเป็นเรื่องที่คิดไม่ถึง) //(คัดลอกหนังสือต้นฉบับ)
1. วิธีเขียนขั้นตอนการทำงาน:
ห้องสมุดFIRSTDLL;
การใช้งาน
SysUtils,
ชั้นเรียน;
{$อาร์ *.เรส}
// 1. กำหนดกระบวนการเฉพาะและโหมดอินเทอร์เฟซเอาต์พุตของฟังก์ชัน
-
// ฟังก์ชั่น 1
// ฟังก์ชั่น: ฟังก์ชั่นการขยายข้อมูล 3 เท่า
-
ฟังก์ชัน BBnToSSnn(SourceResult:Integer):Integer;stdCall;
เริ่ม
ถ้า SourceResult>0 แล้ว
ผลลัพธ์:=SourceResult+3 //ผลลัพธ์จะถูกเก็บไว้ในผลลัพธ์
อื่น
ผลลัพธ์:=ผลลัพธ์แหล่งที่มา;
จบ;
การส่งออก
BBnToSSnn; //2. นิยามพอร์ตเอาต์พุตของฟังก์ชัน
จบ.
-
-
2. สร้างแบบฟอร์มใน DLL
-
1. ในขั้นตอนเดียว ให้สร้างโครงการ DLL และเพิ่มแบบฟอร์มที่กำหนด
ห้องสมุด MGRPERSN;
การใช้งาน
SysUtils,
ชั้นเรียน
MGRPERFM ใน 'MGRPERFM.pas' {FormPERSON};//1.รหัสแบบฟอร์ม (เหมือนกับแบบฟอร์มปกติ)
{$อาร์ *.เรส}
การส่งออก
ShowPerSN;//2. นิยามพอร์ตเอาต์พุตของฟังก์ชัน
เริ่ม
จบ.
2. การตั้งค่าแบบฟอร์มที่กำหนดใน DLL
-
หน่วย MGRPERFM;
อินเตอร์เฟซ
การใช้งาน
Windows, ข้อความ, SysUtils, คลาส, กราฟิก, การควบคุม, แบบฟอร์ม, กล่องโต้ตอบ,
ComCtrls, ToolWin, ImgList;
พิมพ์
TFormPERSON = คลาส (TForm)
ส่วนตัว
{ประกาศส่วนตัว}
สาธารณะ
{ประกาศสาธารณะ}
จบ;
//ตัวแปรในตำแหน่งเหล่านี้ไม่ได้ใช้แล้ว ให้เปลี่ยนเป็นตำแหน่งอื่น ดังนี้ (เปลี่ยนอันหนึ่ง)
//var
// FormPERSON: TFormPERSON;
{ประกาศออกจากฟังก์ชันแบบฟอร์ม}//เปลี่ยนแปลง 2
ฟังก์ชัน ShowPerSN (AHandle: THandle; ACaption: String): BOOL;
การดำเนินการ
{$R *.DFM}
//ฟังก์ชั่นนิยามกระบวนการข้อมูล
ฟังก์ชัน ShowPerSN (AHandle: THandle; ACaption: String): BOOL;
var
FormPERSON: TFormPERSON; //กำหนดคลาสของฟอร์ม (ด้านบนอยู่ที่นี่)
เริ่ม
//คัดลอกตัวจัดการแอปพลิเคชันไปยังวัตถุโปรแกรมที่เหมาะสมของ DLL
application.Handle := AHandle;
FormPERSON := TFormPERSON.Create(Application);//สร้างตัวควบคุม TForm
พยายาม
FormPERSON.Caption := ACaption;
FormPERSON.ShowModal;//แสดงแบบฟอร์มนี้
ผลลัพธ์ := False; // ส่งกลับค่าความสำเร็จ
ในที่สุด
แบบฟอร์มPERSON.ฟรี;
จบ;
จบ;
3. การเรียกฟังก์ชันและแบบฟอร์มใน DLL
-
1. โทรวิธีที่หนึ่ง
-
การใช้งาน // ด้านล่างนี้ ให้เขียน DLL ที่เรียกใช้ฟังก์ชัน
{$R *.DFM}
//การเรียกใช้ฟังก์ชันภายใน DLL
ฟังก์ชัน BBnToSSnn(SourceResult:Integer):Integer;
StdCall ภายนอก 'FIRSTDLL.DLL';
-
2. โทรวิธีที่สอง
-
พิมพ์ // สร้างคลาสฟังก์ชันที่นี่
// 1 ----------------------------------
TShowPerSN = ฟังก์ชั่น (AHandle: THandle; ACaption: String): BOOL;
EDLLLoadError = class (ข้อยกเว้น); // สร้างคลาสบันทึกข้อผิดพลาดในเวลาเดียวกัน
// 1 ----------------------------------
TMAINCLTR = class(TForm) //ไม่มีการเปลี่ยนแปลงที่นี่ ระบบจะสร้างมันขึ้นมาโดยอัตโนมัติ
-
ขั้นตอน TMAINCLTR.ToolButton1Click (ผู้ส่ง: TObject);
var //เหตุการณ์การเรียกปุ่ม: กระบวนการเรียก
LibHandle: THandle;
ShowPerSN: TShowPerSN;
เริ่ม
Application.Title:='โปรแกรมทดสอบไฟล์ DLL ระบบการจัดการทรัพยากรบุคคล';
{พยายามโหลด DLL พยายามโหลดไฟล์ DLL}
LibHandle := LoadLibrary('MGRPERSN.DLL');
พยายาม
ถ้า LibHandle = 0 แล้ว
เพิ่ม EDLLLoadError.Create ('ไม่สามารถโหลด MGRPERSN.DLL ได้สำเร็จ');
@ShowPerSN := GetProcAddress(LibHandle, 'ShowPerSN');
ถ้าไม่ใช่ (@ShowPerSN = nil) แล้ว
ShowPerSN(Application.Handle, 'การจัดการข้อมูลบุคลากร')//กรอกแบบฟอร์ม
อื่น
RaiseLastWin32Error;
ในที่สุด
FreeLibrary(LibHandle); // ยกเลิกการโหลด DLL
จบ;
จบ;
============== จบ ==================
บล็อกของผู้เขียน: http://blog.csdn.net/dgc/