API (อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน) ส่วนต่อประสานการเขียนโปรแกรมแอปพลิเคชันซึ่งจะต้องใช้ในภาษาคอมพิวเตอร์ทั้งหมด API คืออะไร? API เป็นวิธีสำหรับโปรแกรมที่จะใช้บริการที่จัดทำโดยระบบปฏิบัติการ ทดสอบการกรองและฮาร์ดแวร์เมื่อการเขียนโปรแกรม ดังนั้นหากคุณสามารถใช้ APIs เพื่อใช้ฟังก์ชั่นในระหว่างการเขียนโปรแกรมเราพยายามใช้
l วิธีใช้ Windows API ใน Delphi
ในงานพัฒนาประจำวันเรามักจะใช้ฟังก์ชั่น Windows API ดังนั้นฟังก์ชัน API จะมีอยู่ที่ไหน? เราสามารถเข้าใจด้วยวิธีนี้ว่าฟังก์ชั่น API ถูกห่อหุ้มในไฟล์ระบบ DLL ที่จัดทำโดยระบบ Windows ตัวอย่างเช่นขั้นตอนการส่งเสียงบี๊บที่เราใช้มักจะถูกนำไปใช้โดยการโทร MessageBeep ใน User32.dll ในไดเรกทอรีระบบ Windwos; Delphithe ที่ใช้บ่อยที่สุด DLLS คือ: Advapi32.dll, Kernel32.dll, Mpr.dll, Version.dll, comctl32.dll, gdi32.dll, opengl32.dll, user32.dll, wintrust.dll, msimg32
ดังนั้น Delphi ใช้ฟังก์ชั่น API นี้อย่างไร เนื่องจากฟังก์ชั่น API มีอยู่ในระบบ DLL เราสามารถเรียกฟังก์ชัน API ได้เหมือนกับที่เราเรียกว่า DLL ที่เราเขียน มีสองวิธีในการเรียกฟังก์ชั่น DLL หนึ่งคือวิธีการคงที่และอีกวิธีหนึ่งคือวิธีการไดนามิก APIs ที่โทรหา Windows ล้วนเป็นแบบคงที่ทำไม? นี่เป็นเพราะ DLLs เหล่านี้เป็นบริการพื้นฐานที่สุดที่จัดทำโดยระบบปฏิบัติการ
L API และการเขียนโปรแกรมรายวัน
Delphi ห่อหุ้มฟังก์ชั่น Windows API ส่วนใหญ่ (ส่วนใหญ่อยู่ใน Windows.pas Unit) ซึ่งควรจะกล่าวว่าสามารถทำงานส่วนใหญ่ของเราได้ แต่บางครั้งเมื่อมีข้อกำหนดพิเศษเราอาจต้องเรียก API บางตัวที่ไม่ได้รับการห่อหุ้มโดย Delphi และบางครั้งก็เรียกฟังก์ชั่น API ที่ไม่ได้เผยแพร่โดย Windows แล้วคุณเรียกฟังก์ชั่น API เหล่านี้อย่างไร? ดังที่ได้กล่าวไว้ก่อนหน้านี้เพียงใช้การโทรแบบคงที่ สำหรับการโทรโดยละเอียดเพิ่มเติมโปรดดูข้อมูลที่เกี่ยวข้อง
กุญแจสำคัญในการเรียกฟังก์ชั่น API ที่ไม่มีการสรุปเหล่านี้ของ Delphi คือการรู้พารามิเตอร์ คุณสามารถตรวจสอบ MSDN ล่าสุดหรือข้อมูลที่เกี่ยวข้อง
L API และ VCL
MFC ของ Microsoft มี Windows APIs ที่ห่อหุ้มจำนวนมากและ VCL ก็ไม่มีข้อยกเว้น การใช้งานฟังก์ชั่น VCL ส่วนใหญ่ไม่สามารถแยกออกจาก Windows API ไม่ว่าจะเรียกโดยตรงหรือเพียงแค่ห่อหุ้มแล้วเรียกว่า ตัวอย่างเช่นการใช้งานการทาสีใหม่ของ TCONTROL (ในชุดควบคุม):
ขั้นตอน tcontrol.repaint;
วาจา
DC: HDC;
เริ่ม
ถ้า (มองเห็นได้หรือ (csdesigning ในส่วนประกอบ) และไม่ (
csnodesignvisible ใน controlstyle)) และ (parent <> nil) และ
parent.handleAllocated แล้ว
ถ้า csopaque ใน controlstyle แล้ว
เริ่ม
// getDC ของ DLL เรียกโดยตรง
DC: = getDC (parent.handle);
พยายาม
// โทรโดยตรง gdi32.dll intersectcliprect ของ gdi32.dll
IntersectClipRect (DC, ซ้าย, บน, ซ้าย, ซ้าย + ความกว้าง, ด้านบน +
ความสูง);
// parent.paintcontrols เรียก API จำนวนมาก
Parent.PaintControls (DC, Self);
ในที่สุด
// โทรโดยตรง user32.dll ที่ปล่อยออกมา
reablec (parent.handle, dc);
จบ;
จบสิ้น
เริ่ม
// สองต่อไปนี้เรียกโดยการห่อหุ้ม
เป็นโมฆะ;
อัปเดต;
จบ;
จบ;
จะเห็นได้ว่ามี APIs ทุกที่ใน VCL ใส่ใจเกี่ยวกับพารามิเตอร์ API ที่น่ารำคาญเหล่านั้น
com คืออะไร? com (โมเดลวัตถุส่วนประกอบ) โมเดลวัตถุส่วนประกอบเป็นโมเดลส่วนประกอบซอฟต์แวร์ที่ใช้แพลตฟอร์ม Windows ที่อนุญาตให้วัตถุอิสระที่แตกต่างกันสามารถสื่อสารซึ่งกันและกันโดยไม่มีข้อ จำกัด ด้านภาษาใด ๆ คำจำกัดความนี้ค่อนข้างเป็นนามธรรม วัตถุ COM สามารถเข้าถึงได้ผ่านอินเทอร์เฟซ วัตถุประสงค์ของวัตถุ COM คือการตระหนักถึงการแบ่งปันทรัพยากร . DLL)
l vcl และ com
com เป็นสิ่งที่ Microsoft ได้รับการยกย่องอย่างมากก่อนหน้านี้ดังนั้นมันจึงมีอยู่ในระบบปฏิบัติการ Windows ในทำนองเดียวกัน มาจาก tcustomadodataset ที่สืบทอดมาคำจำกัดความของ tcustomadodataset มีดังนี้:
tCustomAdoDataset = คลาส (tDataset, iunknown,
RecordSetEventSvt)
ส่วนตัว
frecordsetObject: _recordset;
ffindcursor: _recordset;
flookupcursor: _recordset;
Flockcursor: _recordset;
Frowset: Irowset;
Faccessor: iaccessor;
FrowsetFind: IrowsetFind;
Fhaccessor: Haccessor;
folerecbufsize: จำนวนเต็ม;
-
จบ;
ADO (Microsoft Active Data Objects) คอลเลกชันของวัตถุ COM ที่เข้าถึงฐานข้อมูลผ่านผู้ให้บริการ Microsoft OLE DB ตัวอย่างเช่นเราจะศึกษากระบวนการดำเนินการของวิธีแรกของ Tadoquery:
tadoquery.first-> tdataset.first-> tdataset.internalfirst-> tcustomadodataset.internalfirst-> recordset15
Tadoquery สืบทอดมาจาก tcustomadodataset และ tcustomadodataset สืบทอดมาจาก tdataset, tdataset.internalfirst กำหนดวิธีการเสมือนจริง Tcustomadodataset
ไม่ยากที่จะพบว่า tadoquery.first ถูกนำไปใช้ในที่สุดผ่านอินเตอร์เฟสที่เรียกวัตถุ COM
l Delphi และ Windows Shell
Windows Shell คืออะไร? Windows Shell เป็นสภาพแวดล้อมสำหรับการทำงานของอินเทอร์เฟซ Windows และยังช่วยให้เรามีความสามารถในการปรับขนาดที่ทรงพลังสำหรับการเขียนโปรแกรม เราใช้เชลล์ Windows ในการตั้งโปรแกรมฟังก์ชั่นบางอย่างที่เรียกว่าส่วนขยายเชลล์ ตัวอย่างเช่นหากเครื่องของคุณติดตั้ง Winrar คุณจะเห็นเมนู WinRAR บีบอัดในเมนูคลิกขวาในโฟลเดอร์ ฟังก์ชั่นเหล่านี้ถูกนำไปใช้ผ่านส่วนขยาย Windows Shell
เชลล์ Windows นั้นใช้ COM ดังนั้นส่วนขยายของเชลล์ทั้งหมดจะต้องดำเนินการผ่านอินเทอร์เฟซ Delphi ยังกำหนดอินเทอร์เฟซส่วนขยายของเชลล์จำนวนมากในหน่วย Source/RTL/Win/Shlobj.pas ในไดเรกทอรีการติดตั้ง Delphi7
มีตัวอย่างของ Virtual ListView ในไดเรกทอรีการสาธิตของ Delphi ซึ่งคือการรับรู้การเรียกดูดิสก์ผ่านส่วนขยายของ Windows Shell
การฝังภาษาแอสเซมบลีในรหัสยังเป็นคุณสมบัติที่สำคัญของ Delphi
ภาษาแอสเซมบลีเป็นภาษาคอมพิวเตอร์ระดับต่ำที่เกี่ยวข้องกับฮาร์ดแวร์อย่างใกล้ชิด ดังนั้นเราจึงพยายามที่จะไม่ใช้ในการเขียนโปรแกรมรายวัน แต่ในบางโอกาสพิเศษ (เช่นความต้องการประสิทธิภาพสูงและการจัดการฮาร์ดแวร์โดยตรง) มันยังสามารถมีบทบาทสำคัญ
จุดจบ
(หากคุณต้องการพิมพ์ซ้ำโปรดระบุแหล่งที่มาและผู้แต่ง http://haitian.myrice.com)