สำหรับวัตถุ DLL encapsulation เฉพาะโปรดดูที่ "DLL Encapsulation and Call Object Technology ของ Liu Yi ของ Liu Yi และซอร์สโค้ดสำหรับหนังสือ
ฉันพบปัญหาแปลก ๆ ในกระบวนการรวบรวม DLLS โดยใช้ Delphi
1. โครงการ DLL ที่สร้างขึ้นโดย Delphi Writes: Sharemem ต้องเป็นหน่วยแรกในประโยคการใช้ห้องสมุดและโครงการของคุณ มีการกล่าวถึงที่นี่ว่าทั้งโครงการ DLL และโครงการที่ใช้ DLL จำเป็นต้องอ้างอิงหน่วย Sharemem
เป็นการดีที่สุดที่จะเพิ่มหน่วย Sharemem ลงในโครงการเนื่องจากในการใช้งานจริงพบว่าบางครั้งวัตถุจะถูกส่งผ่านระหว่างโครงการและ DLL ที่จะใช้
2. ปัญหาคำจำกัดความของการเรียกฟังก์ชัน DLL:
เมื่อเอาต์พุตใน DLL: ฟังก์ชั่น ABC: iInterface;
การเรียกใช้ฟังก์ชันหมายถึงดังนี้ในโปรแกรม:
พิมพ์
TFUNC = ฟังก์ชั่น: iInerface;
ข้อผิดพลาดแปลก ๆ จะเกิดขึ้นซึ่งควรกำหนดให้เหมือนกับที่กำหนดไว้ใน DLL:
พิมพ์
tfunc = ฟังก์ชั่น: iinterface;
3. เมื่อใช้อินเทอร์เฟซใน DLL อย่าลืมตั้งค่าเป็นศูนย์ก่อนที่วัตถุจะถูกปล่อยออกมาใน DLL หลังการใช้งาน
4. การดีบัก DLLS ใน Delphi: ฉันมักจะพบปัญหาที่ฉันไม่สามารถเพิ่มจุดพักเมื่อทำการดีบัก DLL ตรวจสอบการตั้งค่าใน DLL ไม่ว่าเส้นทางเอาต์พุตของ DLL ที่รวบรวมนั้นจะเหมือนกับการตั้งค่าเส้นทางหลักของโปรแกรมที่เรียกว่า DLL และควรเป็นเส้นทางที่แน่นอน
5. ใน "DLL encapsulation และการเรียกใช้เทคโนโลยีวัตถุใน Delphi" ข้อ จำกัด หลักของ DLL ในวัตถุห่อหุ้มคือ
?
2. - -
3. - -
ดูเหมือนจะไม่มีข้อ จำกัด เกี่ยวกับวิธีการใช้วัตถุในโปรแกรมหลักสำหรับ DLLs ฉันสงสัยว่าทำไม?