Danh mục

Giáo trình Lập trình C trên Windows: Phần 1 - Nguyễn Đình Quyên, Mai Xuân Hùng (đồng biên soạn)

Số trang: 70      Loại file: pdf      Dung lượng: 8.19 MB      Lượt xem: 16      Lượt tải: 0    
Jamona

Phí tải xuống: 1,000 VND Tải xuống file đầy đủ (70 trang) 0
Xem trước 7 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Giáo trình Lập trình C trên Windows gồm 6 bài, được chia thành hai phần. Phần 1 giới thiệu đến bạn đọc nội dung từ bài 1 đến bài 3 về các nội dung sau: Tổng quan về lập trình Windows, giao diện đồ họa người dùng và hộp hội thoại.
Nội dung trích xuất từ tài liệu:
Giáo trình Lập trình C trên Windows: Phần 1 - Nguyễn Đình Quyên, Mai Xuân Hùng (đồng biên soạn) Bài 1 TỔNG QUAN VỀ LẬP TRÌNH WINDOWS Không cần nói nhiều hơn, tất cả chúng ta ñều khá quen thuộc với việc sử dụng các ứng dụng trên hệ ñiều hành Microsoft Windows. Trong bài học ñầu tiên này, tôi xin giới thiệu các ñặc ñiểm chính của hệ ñiều hành này, ñồng thời cũng trình bày cách xây dựng ứng dụng cụ thể dạng Win32 Application trên công cụ Visual C++ 6.0. 1.1. LẬP TRÌNH TRÊN MICROSOFT WINDOWS Trong tất cả các môn học trước, hầu như chúng ta chỉ cài ñặt các chương trình, minh họa các thuật toán,… dưới dạng các ứng dụng xử lý tuần tự theo lô (batch-oriented) hay giao tác (transaction-oriented) gắn liền với hệ ñiều hành MS-DOS. Tuy nhiên, các ứng dụng trên Windows thì hoàn toàn khác. Vì thế, phần này sẽ tóm tắt giúp các bạn các ñặc ñiểm chính của hệ ñiều hành Windows, và cũng chính là các ñặc ñiểm của các ứng dụng khi lập trình trên môi trường này. 1.1.1. Thông ñiệp và xử lý thông ñiệp Khi chúng ta viết một chương trình dạng MS-DOS bằng ngôn ngữ C, yêu cầu duy nhất là ta phải viết một hàm main. Hệ ñiều hành gọi hàm main khi chương trình ñược thực thi, và thực hiện theo các cấu trúc lệnh ñã ñược lập trình từ trên xuống dưới. Tuy nhiên, với Windows thì khác hẳn. Hệ ñiều hành Windows cũng gọi một hàm chính là WinMain khi bắt ñầu tiến trình ñể thực hiện việc tạo lập cửa sổ ứng dụng, ứng dụng này ñược hệ ñiều hành quản lý thông qua ñịa chỉ của tiến trình và vùng nhớ ñối tượng cửa sổ. Các thao tác của người dùng - hoặc do các ñối tượng khác trên Windows - tác ñộng lên ứng dụng ñều ñược chuyển thành một dạng thông tin gọi là thông ñiệp (message) và ñược hệ ñiều hành quản lý. Hệ ñiều hành lần lượt chuyển các thông ñiệp ñến các cửa sổ nhận thao tác vừa thực hiện. Khi lập trình, các thông ñiệp này ñều ñược gởi vào hàm xử lý của cửa sổ - thường ñặt tên là WndProc ñối với cửa sổ chính của ứng dụng, và ta chỉ việc viết code ñể xử lý cho ứng dụng thông qua các giá trị thông ñiệp (tương ứng các thao tác) ñã ñược Windows ñịnh nghĩa sẵn. 1.1.2. Giao diện ñồ họa người dùng GUI Vấn ñề xử lý thông ñiệp là ñặc ñiểm quan trọng nhất, tuy nhiên khi ñề cập ñến lập trình trên Windows người ta lại thường chú ý tới ñặc trưng giao diện (visual interface) của các ứng dụng hơn. Trên môi trường Windows, các ứng dụng giao tiếp (trao ñổi thông tin) với người dùng thông 5 qua các ñối tượng trực quan như cửa sổ (window), thanh trình ñơn (menu), hộp hội thoại (dialog box), các ñối tượng ñiều khiển (controls)… Khi lập trình, chúng ta sử dụng các hàm API (Application Programming Interface), cơ chế liên kết ñộng DLL (Dynamic Link Library) và hệ thống tài nguyên (resource-based programming) của IDE (Intergrated Development Environment) ñể xây dựng giao diện các ứng dụng theo các ñịnh dạng mà Windows hỗ trợ. 1.1.3. Giao tiếp thiết bị ñồ họa GDI Khi lập trình trên MS-DOS, ñể giao tiếp với các thiết bị - ñưa dữ liệu ra vùng nhớ màn hình, cổng máy in chẳng hạn - thì ta phải biết cơ chế của các thiết bị phần cứng tương ứng, rồi ghi dữ liệu ra thẳng thiết bị. Thế nhưng, trên Windows, với sự hỗ trợ của hệ ñiều hành, các ứng dụng không cần phải truy xuất thiết bị vật lý. Dữ liệu ñược xuất ra một ñối tượng thiết bị ảo, gọi là thiết bị ngữ cảnh (device context), sau ñó thông qua chương trình ñiều khiển thiết bị ñã cài ñặt trên hệ ñiều hành (tức là các driver của các thiết bị phần cứng), dữ liệu sẽ ñược chuyển ñến các thiết bị vật lý khác nhau mà người lập trình ứng dụng trên Windows không cần phải biết về chúng. 1.1.4. Quản lý vùng nhớ và tập tin Với các phiên bản mới của hệ ñiều hành, việc quản lý các vùng nhớ và tập tin của các ứng dụng trên Windows ngày càng dễ dàng và hiệu quả hơn. Chúng ta không phải thật sự khó khăn khi cấp phát, truy xuất, giải phóng,… các khối nhớ, vì ñã có hệ ñiều hành lo giúp. Với cơ chế cấp phát và quản lý ñộng, quản lý vùng nhớ ảo và ánh xạ vùng nhớ lên hệ thống lưu trữ phụ, việc thao tác các ñối tượng vùng nhớ lớn, phức tạp giờ ñây chỉ còn là việc gọi các hàm Windows cung cấp và việc tổ chức các cấu trúc dữ liệu phú hợp cho ứng dụng mà thôi. 1.1.5. Thư viện liên kết ñộng Trên môi trường MS-DOS, các module của các ñối tượng trong mỗi chương trình chỉ ñược liên kết tĩnh trong quá trình tạo (build) ứng dụng. Trong khi trên môi trường Windows, các hàm, thư viện còn có thể ñược gọi khi chương trình ñang thực thi (run-time), gọi là cơ chế liên kết ñộng. Các tiến trình ñang thực thi có thể cùng chia sẻ các thư viện này, ñiều này giúp giảm thiểu vùng nhớ và kích thước các tập tin. Thật ra bản thân hệ ñiều hành Windows là tập hợp các thư viện liên kết ñộng, với ba ñơn vị chính là Kernel, User, và GDI liên quan ñến các hàm, thủ tục thể hiện các chức năng quản lý các tiến trình, vùng nhớ, tập tin,… (kernel), giao diện người dùng, các cửa sổ,… (user) và thiết bị ñồ họa (GDI) và các DLL gắn liền với các ứng dụng khác ñược cài ñặt trên máy tính. 1.2. ỨNG DỤNG WIN32 APPLICATION TRÊN MS VISUAL C++ 6.0 6 Sau khi nắm ñược các ñặc ñiểm chính của các ứng dụng trên môi trường hệ ñiều hành MS Windows, phần này sẽ giúp các bạn hiểu và xây dựng ứng dụng cụ thể dạng Win32 Application trên công cụ MS Visual C++ 6.0. 1.2.1. Project ứng dụng Win32 Application MS Visual C++ 6.0 hỗ trợ lập trình nhiều dạng ứng dụng khác nhau như Win32 Console Application, Win32 Application, MFC AppWizard, Win32 Dynamic Link Library,… trong ñó Win32 Application lập trình trực tiếp với các hàm API là dạng mà chúng ta sẽ tìm hiểu trong môn học này. Hình 1.1. Tạo lập project dạng Win32 Application Sử dụng Wizard của Visual C++ 6.0, chúng ta tạo lập project ñầu tiên như sau: 1 Bước 1: Từ menu File, chọn menu item New… Ctrl+N. 2 Bước 2: Trên hộp thoại New chọn dạng Projects Win32 Apllication, gõ tên project (Proje ...

Tài liệu được xem nhiều: