Những đặc điểm cơ bản của Windows API

posted Jun 10, 2011, 9:35 AM by admin@ revitviet.vn
I. API là gì:
API là viết tắt của Application Programming Interface (giao diện lập trình ứng dụng). Nó là một giao tiếp phần mềm được dùng bởi các ứng dụng khác nhau. Cũng giống như bàn phím là thiết bị giao tiếp giữa người dùng và máy tính, một API là một giao tiếp phần mềm chẳng hạn giữa chương trình và hệ điều hành. Bộ API của từng hệ điều hành không giống nhau, làm cho các hệ điều hành thường không tương thích với nhau. Ví dụ, những phần mềm trên máy Macintosh không thể chạy trên Windows 98, bởi vì Macintosh và Windows 98 có các API hoàn toàn khác nhau. Chức năng cơ bản của các trình giả lập, để một phần mềm viết trên Macintosh có thể chạy trên Windows 98 chẳng hạn, là chuyển đổi lời gọi API của chương trình sang lời gọi API của hệ điều hành mà chương trình đang chạy. Nó hoạt động giống như là các bộ chuyển đổi giữa hai API.
Một API là một mức cơ sở của lập trình cấp cao. Trong lập trình cấp cao, một chương trình thường không tự thực thi các tác vụ mà là gọi các chương trình khác để thực hiện các tác vụ đó. Trong trường hợp của các hệ điều hành, các chương trình thường ủy nhiệm các tác vụ khác nhau cho hệ điều hành ở lớp dưới. Ví dụ, nếu một chương trình muốn ghi vào đĩa, nó không tự điều khiển đĩa cứng để tìm kiếm, đọc, ghi từng bit một. Thay vào đó, nó chỉ đơn giản báo cho hệ điều hành biết rằng nó cần ghi một vài thông tin vào một file nào đó, và hệ điều hành sẽ đảm nhiệm phần còn lại. Lợi ích của cách tổ chức này quá rõ ràng. Các lập trình viên không phải bận tâm đến những công việc vặt vãnh như truy xuất đĩa, cấp phát bộ nhớ, hiển thị lên màn hình… Hơn thế nữa, giả sử rằng một phương pháp mới để dựng hình trên màn hình phát triển. Nếu mỗi chương trình đều tự quản lý việc hiển thị lên màn hình thì mỗi chương trình cần phải cập nhật để tận dụng lợi ích của phương pháp mới này. Thay vào đó, nếu chúng dùng API và hệ điều hành đã cập nhật API đó với phương pháp mới này thì tất cả các chương trình đều được cập nhật theo.


II. Windows API làm được những việc gì
Nói một cách cơ bản, Windows API quản lý mọi vấn đề làm ra Windows. Tất nhiên, bao gồm cả những vấn đề đã nói ở trên như truy xuất đĩa, cấp phát bộ nhớ, hiển thị trên màn hình… Tuy nhiên, nó đồng thời cũng cung cấp hầu hết các tính năng thông dụng cho tất cả các chương trình trên nền Windows. Ví dụ, các hộp thoại thông dụng (Open, Save As, Choose Font, …), các thiết lập hệ điều hành, các sự kiện, … Các ứng dụng trên nền Windows dùng Windows API hầu như trong mọi tác vụ. Thậm chí nếu bạn không dùng Windows API một cách rõ ràng khi lập trình thì trong ngôn ngữ lập trình cũng sẽ gọi các Windows API trong chương trình được tạo ra để quản lý nhiều tác vụ khác nhau.


III. Windows API được chứa ở đâu:
Hầu hết các hàm Windows API được chứa trong các file *.DLL (Dynamic Link Library – thư viện liên kết động) chứa trong thư mục hệ thống của Windows (..\Windows\System\). Các file DLL cho phép các chương trình bên ngoài dùng các hàm của chúng. Hầu hết các hàm API chứa trong user32.dll (các hàm giao diện người dùng), kernel32.dll (các hàm của hệ điều hành), gdi32.dll (các hàm giao tiếp thiết bị đồ họa) và shell32.dll (các hệ vỏ Windows).


IV. Các thành phần của Windows API
Khi nói đến Windows API, người ta thường hay nghĩ ngay đến các hàm. Nhưng thực ra ra, các hàm cũng chủ là một thành phần của Windows API. Sau đây là danh sách các đối tượng tạo nên Windows API:
· Các hàm (function): Như đã đề cập, các hàm chính là hạt nhân của Window API. Chúng là những mã lệnh thực sự để hoàn thành các công việc khác nhau. Chúng được chứa trong các dll và có thể được truy xuất một cách dễ dàng bởi các chương trình trên windows
· Cấu trúc (structure): là sự kết hợp của nhiều biến riêng biệt, thường được dùng để nhóm các thông tin có liên quan với nhau thành một nhóm. Nhiều hàm API đòi hỏi một cấu trúc phải được truyền cho chúng để có thể vận chuyển một lượng lớn thông tin mà không cần phải dùng quá nhiều đối số trong hàm. Mặc dù những cấu trúc này được dùng trong các hàm API, chương trình của bạn vẩn có thể tự định nghĩa chúng (đối với Visual Basic hầu như phải tự định nghĩa lại cấu trúc).
· Các hằng được đặt tên (named constant): các hằng được đặt tên là một cách thức thuận lợi để tham chiếu đến các mã số khó nhớ (ví dụ mã quét của bàn phím chẳng hạn). Đôi khi các hằng được dùng như là các cờ. Cũng như với cấu trúc, các hằng phải được định nghĩa rõ ràng trong chương trình của bạn (Visual Basic).
· Các hàm gọi lại (callback function): về khái niện, các hàm callback ngược với các hàm API. Một hàm callback được định nghĩa hoàn toàn trong chương trình của bạn. Sau đó hàm này sẽ được một hàm API khác gọi khi nó thực thi một tác vụ nào. Các hàm callback cung cấp một cách thức để chương trình của bạn có thể can thiệp trực tiếp vào tác vụ đó. Nó tương tự như con trỏ hàm (pointer function) trong C/C++. Trong Visual Basic các thủ tục sử lý sự kiện của bạn là một hình dung dễ nhất về callback function.
Comments