บ้าน พัฒนาการ แอตทริบิวต์ dllimport คืออะไร - คำจำกัดความจาก techopedia

แอตทริบิวต์ dllimport คืออะไร - คำจำกัดความจาก techopedia

สารบัญ:

Anonim

คำจำกัดความ - แอตทริบิวต์ DllImport หมายถึงอะไร

แอตทริบิวต์ DllImport เป็นแท็กที่ประกาศใช้ใน C # เพื่อทำเครื่องหมายวิธีการเรียนที่ถูกกำหนดไว้ในไลบรารี dynamic-link ภายนอก (DLL) มากกว่าในแอสเซมบลี. NET ใด ๆ


คุณลักษณะ DllImport ถูกใช้ในเวลาทำงานเพื่อเรียกใช้ฟังก์ชันที่ส่งออกใน DLL ภายนอกที่ใช้งานโดยไม่มีการจัดการโค้ดที่ดำเนินการนอกการควบคุมของ runtime ภาษาทั่วไป (CLR) นอกจากนี้ยังใช้เพื่อระบุข้อมูลอื่น ๆ ที่จำเป็นในขณะที่เรียกใช้ฟังก์ชันเช่นระเบียบการเรียกประเภทของการแปลงพารามิเตอร์ที่ส่งผ่านระหว่างรหัสที่ได้รับการจัดการและไม่ได้รับการจัดการ ฯลฯ ดังนั้นมันจึงถูกใช้เพื่อทำงานร่วมกับรหัสในองค์ประกอบที่ไม่มีการจัดการ ที่กำลังและเขียนใน C หรือ C ++


DllImport มีประโยชน์ในสถานการณ์ที่การทำงานของแอปพลิเคชันที่ได้รับการจัดการซึ่งมีรหัสถูกเรียกใช้โดย CLR สามารถขยายได้โดยการเข้าถึงและการใช้ฟังก์ชันการทำงานของส่วนต่อประสานการเขียนโปรแกรมประยุกต์ Win32 (API) และรหัสอื่น ๆ ที่ผู้ใช้กำหนด ใน DLL สิ่งนี้สามารถประหยัดความพยายามในการพัฒนาและใช้ประโยชน์จากรหัสที่มีประสิทธิภาพและผ่านการทดสอบอย่างดีโดยไม่ต้องสร้างใหม่ในแอปพลิเคชันที่มีการจัดการ โดยทั่วไปจำเป็นต้องใช้ในขณะที่ใช้ DLL ที่ไม่สามารถเขียนใหม่ แต่มีความสามารถในการปรับเปลี่ยน

Techopedia อธิบายคุณสมบัติ DllImport

คุณลักษณะ DllImport เป็นคำสั่งประกาศสำหรับฟังก์ชั่นการส่งออกที่จะเรียกจากแอปพลิเคชันที่ได้รับการจัดการ ไม่สามารถใช้สำหรับฟังก์ชันสมาชิกได้ซึ่งต้องการอินสแตนซ์ของคลาส มันถูกระบุในเวลาออกแบบภายในวงเล็บปีกกาสี่เหลี่ยมก่อนการประกาศของวิธีการที่มันถูกนำไปใช้ จำเป็นต้องใช้สตริง“ extern” ก่อนการประกาศฟังก์ชัน


ตัวอย่างเช่นแอตทริบิวต์ DllImport สามารถใช้ในแอปพลิเคชัน Windows Forms ซึ่งเป็นแอปพลิเคชันที่ได้รับการจัดการเพื่อเรียกใช้วิธีการของส่วนประกอบวัตถุรูปแบบองค์ประกอบ (รหัสที่ไม่มีการจัดการ) สำหรับการคำนวณบางอย่าง


มันถูกออกแบบมาเพื่อนำเข้า DLLs ดั้งเดิมที่ส่งออกฟังก์ชันโดยใช้กลไกการส่งออก Windows DLL ดั้งเดิม ไม่ได้มีไว้สำหรับใช้รหัสในแอสเซมบลีที่ได้รับการจัดการ (เป็น DLL) ซึ่งสามารถอ้างอิงได้โดยตรงในโครงการของแอปพลิเคชันที่ได้รับการจัดการ


คุณลักษณะ DllImport ใช้ InteropServices ของ CLR ซึ่งดำเนินการโทรจากรหัสที่ได้รับการจัดการไปยังรหัสที่ไม่มีการจัดการ นอกจากนี้ยังแจ้งคอมไพเลอร์เกี่ยวกับตำแหน่งของการใช้งานฟังก์ชั่นที่ใช้ เมื่อมีการเรียกใช้ฟังก์ชัน wrapper ที่มีแอ็ตทริบิวต์นี้ในรหัสที่ได้รับการจัดการ CLR จะหาตำแหน่งและโหลด DLL ที่จำเป็น มันเป็น marshals (แปลงพารามิเตอร์ตามข้อมูลจำเพาะ) และส่งคืนรหัสที่ไม่มีการจัดการหลังจากการดำเนินการพร้อมกับการแปลงพารามิเตอร์ที่เหมาะสม


ในขณะที่ใช้แอตทริบิวต์ DllImport ต้องใช้ความระมัดระวังเพื่อใช้ชื่อที่ถูกต้องของ DLL และฟังก์ชันที่ส่งออกเนื่องจากการพิมพ์ผิดอาจเกิดขึ้นในสถานที่ที่ไม่สามารถตรวจพบได้ง่าย

แอตทริบิวต์ dllimport คืออะไร - คำจำกัดความจาก techopedia