การเรียกประชุม
เมื่อประกาศขั้นตอนหรือฟังก์ชั่นคุณสามารถใช้หนึ่งในตัวชี้วัดต่อไปนี้เพื่อระบุการประชุมการโทร: ลงทะเบียน, Pascal, CDECL, STDCALL และ SAFECALL ตัวอย่างเช่น,
ฟังก์ชั่น myfunction (x, y: ของจริง): จริง;
-
อนุสัญญาการโทรกำหนดลำดับที่พารามิเตอร์จะถูกส่งผ่านไปยังกิจวัตรและพวกเขายังส่งผลกระทบต่อการใช้การลงทะเบียนเมื่อลบพารามิเตอร์จากสแต็กการส่งพารามิเตอร์และการจัดการข้อผิดพลาดและการจัดการข้อผิดพลาด การประชุมการโทรเริ่มต้นคือการลงทะเบียน
•การลงทะเบียนและการโทรผ่าน Pascal พารามิเตอร์จากซ้ายไปขวานั่นคือพารามิเตอร์ซ้ายสุดจะถูกคำนวณและส่งผ่านอย่างเร็วที่สุดและในที่สุดพารามิเตอร์ที่ถูกต้องจะถูกคำนวณและผ่านไปแล้ว
•นอกเหนือจากการเรียก CDECL ขั้นตอนและฟังก์ชั่นลบพารามิเตอร์ออกจากสแต็กก่อนที่จะกลับมาในขณะที่ CDECL ใช้เมื่อการโทรกลับผู้โทรจะลบพารามิเตอร์ออกจากสแต็ก
•การลงทะเบียนการโทรสามารถส่งผ่านพารามิเตอร์โดยใช้การลงทะเบียน CPU สูงสุด 3 รายการในขณะที่การโทรอื่น ๆ ทั้งหมดใช้สแต็กเพื่อส่งพารามิเตอร์
•การเรียก Safecall ใช้ข้อยกเว้น "ไฟร์วอลล์" ซึ่งใช้การแจ้งเตือนข้อผิดพลาดระหว่างกระบวนการระหว่างกระบวนการภายใต้ Windows
ตารางต่อไปนี้สรุปการประชุมการโทร:
------------------------------------------------------ --------------------------------------------
-คำ Inindicator ------------------------------------------- ------------------------------------------------------ ------------------------------------------------------ ------------------------------------------------------ ------------------------------------------------------ ---? -
-register --------------- จากซ้ายไปขวา --------- กิจวัตร ----------------- ใช่ --------------------- ||
-Pascal --------------- จากซ้ายไปขวา --------- กิจวัตร ----------------- ไม่ --------------------- |
-CDECL ----------------- ขวาไปซ้าย --------- ผู้โทร ---------------- --- ไม่ ------------------------ |
-stdcall ---------------- ขวาไปซ้าย ---------- กิจวัตร ---------------- --- ไม่ --------------------- |
-Safecall --------------- ขวาไปซ้าย ---------- กิจวัตร ----------------- --- ไม่ ------------------ |
------------------------------------------------------ -------------------------------------------
การโทรลงทะเบียนเริ่มต้นมีประสิทธิภาพมากที่สุดเพราะมักจะหลีกเลี่ยงการสร้างเฟรมสแต็ก (ต้องใช้การลงทะเบียนเมื่อเข้าถึงคุณสมบัติที่เผยแพร่) แนะนำให้ใช้ STDCALL และ SAFECALL ใน Windows ระบบ API ใช้ STDCALL และ SAFECALL ในขณะที่ระบบปฏิบัติการอื่น ๆ มักจะใช้ CDECL (โปรดทราบว่า STDCALL มีประสิทธิภาพมากกว่า CDECL)
วิธีการที่ประกาศอินเทอร์เฟซคู่จะต้องใช้ Safecall; สำหรับข้อมูลเพิ่มเติมเกี่ยวกับอนุสัญญาการโทรอ้างอิงถึงการควบคุมโปรแกรม
ตัวชี้วัดที่อยู่ใกล้ไกลและการส่งออกใช้ในการเขียนโปรแกรม Windows 16 บิตและไม่มีผลต่อโปรแกรม 32 บิตและพวกเขาจะถูกเก็บรักษาไว้เพื่อความเข้ากันได้ย้อนหลัง