Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

BÀI GIẢNG: LẬP TRÌNH WINDOWS ppt
PREMIUM
Số trang
96
Kích thước
877.4 KB
Định dạng
PDF
Lượt xem
780

BÀI GIẢNG: LẬP TRÌNH WINDOWS ppt

Nội dung xem thử

Mô tả chi tiết

BỘ GIAO THÔNG VẬN TẢI

TRƢỜNG ĐẠI HỌC HÀNG HẢI

BỘ MÔN: KHOA HOC̣ MÁY TÍNH

KHOA: CÔNG NGHỆ THÔNG TIN

BÀI GIẢNG

LẬP TRÌNH WINDOWS

TÊN HỌC PHẦN : Lập trình Windows

MÃ HỌC PHẦN : 17214

TRÌNH ĐỘ ĐÀO TẠO : ĐẠI HỌC CHÍNH QUY

DÙNG CHO SV NGÀNH : CÔNG NGHỆ THÔNG TIN

HẢI PHÕNG - 2010

Bài giảng môn học: Lâp̣ triǹ h Windows

i

Tên học phần: Lập trình Windows Loại học phần: 2

Bộ môn phụ trách giảng dạy: Khoa học Máy tính

Khoa phụ trách: CNTT

Mã học phần: 17214 Tổng số TC: 3

TS tiết Lý thuyết Thực hành/Xemina Tự học Bài tập lớn Đồ án môn học

60 30 30 0 0 0

Điều kiện tiên quyết:

Sinh viên phải học xong các học phần sau mới đƣợc đăng ký học phần này:

Lâp̣ trình hƣớng đối tƣơṇ g, Cấu trúc dƣ̃liêụ

Mục tiêu của học phần:

- Cung cấp các kiến thức cơ bản về lâp̣ trình trƣc̣ quan trên hê ̣điều hành Windows

- Cung cấp các kiến thƣ́c về truy câp̣ và can thiêp̣ vào các t hành phần của hệ điều

hành Windows

Nội dung chủ yếu

Các kiến thức về thao tác với file và thƣ mục , cơ sở dƣ̃liêụ registry , các luồng, tiến

trình, dịch vụ, các thƣ viện liên kết động và lập trình sockets trên Windows.

Nội dung chi tiết của học phần:

TÊN CHƢƠNG MỤC

PHÂN PHỐI SỐ TIẾT

TS LT TH/Xemina BT KT

Chƣơng I. Các khái niệm cơ bản 3 0 0 0

1.1. Giới thiệu về môi trƣờng lâp̣ trình trên

Windows

1.1.1. Cở sở về hê ̣điều hành Windows

1.1.2. Các phiên bản của hê ̣điều hành

Windows

1.1.3. Vai trò của Windows trên thi ̣trƣờng phần

mềm

1.2. Thƣ viêṇ Win32 và Win64

1.2.1. Win32 API

1.2.2. Win64 API

1.3. Giớ

i thiêụ về bô ̣công cu ̣Visual Studio

2005

1

1

1

Chƣơng II. Hê ̣thống file vàthƣ mục 4 4 0

2.1. Truy câp̣ vàsƣ̉ duṇ g hê ̣thống file trên môi

trƣờng Windows

2.1.1. Hê ̣thống file và

thƣ muc̣ của Windows

2.1.2. Các thao tác với file và thƣ mục trên

Windows

2.1.3. Các vấn đề liên quan tới Unicode

2.2. Các ví dụ về thao tác vớ

i file

2.2.1. Tạo file và xử lý các lỗi liên quan

2

1

2

1

Bài giảng môn học: Lâp̣ triǹ h Windows

ii

TÊN CHƢƠNG MỤC

PHÂN PHỐI SỐ TIẾT

TS LT TH/Xemina BT KT

2.2.2. Copy file

2.2.3. Hiển thi ̣danh sách các file trong thƣ muc̣

hiêṇ thờ

i

2.3. Quản lý file và thƣ mục nâng cao

2.3.1. Con trỏ file

2.3.2. Truy câp̣ tớ

i các thuôc̣ tính của file và

thƣ muc̣

1 1

Chƣơng III. Hê ̣thống cơ sở dƣ̃liêụ Registry 4 6 0 1

3.1. Khái niệm và vai trò của CSDL Registry

3.1.1. Các khóa, các hive

3.1.2. Các kiểu dữ liệu

3.2. Quản lý CSDL Registry

3.2.1. Thay đổi khóa

3.2.2. Thêm mớ

i khóa

3.2.3. Liêṭ kê các khóa

3.3. Can thiêp̣ Windows qua Registry

3.3.1. Thay đổi giao diêṇ

3.3.2. Thay đổi các thiết lâp̣ đối vớ

i các ổ điã

3.3.3. Thay đổi các thiết lâp̣ vớ

i ngƣờ

i dùng

1

1

2

1

2

3

1

Chƣơng IV. Quản lý các tiến trình và luồng 4 6 0 1

4.1. Các tiến trình và luồng trên Windows

4.2. Các thao tác với tiến trình

4.2.1. Tạo tiến trình

4.2.2. Kết thúc và

thoá

t khỏi môṭ tiến trình

4.2.3. Các thao tác với biến môi trƣờng của

Windows

4.2.4. Ví dụ : Ghi nhâṭ ký

thờ

i gian thƣc̣ hiêṇ

của các tiến trình

4.3. Quản lý luồng (thread) trên Windows

4.3.1. Các khái niệm cơ bản

4.3.2. Mô hình Boss /Worker và các mô hình

khác

4.3.3. Bô ̣nhớ dành cho luồng

4.3.4. Độ ƣu tiên và các trạng thái của luồng

4.4. Môṭ số vídu ̣về tiến trình và

luồng

4.4.1. Tìm kiếm song song với các tiến trình

4.4.2. Thuâṭ toán sắp xếp trôṇ bằng đa luồng

2

1

1

2

2

2

1

Chƣơng V. Các dịch vụ của Windows 4 6 0 1

5.1. Tổng quan về dic̣h vu ̣trên Windows

5.2. Các thành phần của một dịch vụ

5.2.1. Hàm main()

5.2.2. Hàm ServiceMain()

5.2.3. Kiểm soá

t dic̣h vu ̣qua các Handler

5.3. Ví du: dịch vụ đơn giản trên Windows

1

1

2

2

Bài giảng môn học: Lâp̣ triǹ h Windows

iii

TÊN CHƢƠNG MỤC

PHÂN PHỐI SỐ TIẾT

TS LT TH/Xemina BT KT

5.4. Quản lý các dịch vụ của Windows

5.4.1. Các phƣơng pháp kiểm soát các dịch vụ

của Windows

5.4.2. Ví dụ : Điều khiển các dic̣h vu ̣của

Windows

2 2

1

Chƣơng VI. Lâp̣ triǹ h maṇ g vớ

i Sockets 4 4 0 0

6.1. Khái niệm sockets trên Windows

6.2. Các hàm sockets phía server

6.3. Các hàm sockets phía client

6.4. Ứng dụng mạng đơn giản

6.4.1. Phía server

6.4.2. Phía client

6.5. Windows Sockets 2.0

0,5

0,5

0,5

2

0,5

1

0,5

0,5

2

Chƣơng VII. Thƣ viêṇ liên kết đôṇ g 4 4 0 0

7.1. Khái niệm và ứng dụng của thƣ viện liên

kết đôṇ g

7.2. Hê ̣thống thƣ viêṇ DLL của Windows

7.3. Các bƣớc tạo một thƣ viện DLL

7.3.1. Tạo thƣ viêṇ DLL

7.3.2. Viết ƣ́ng duṇ g goị tớ

i thƣ viêṇ DLL

1

1

2

0,5

1

2,5

Nhiệm vụ của sinh viên :

Tham dự các buổi thuyết trình của giáo viên, tự học, tự làm bài tập do giáo viên giao,

tham dự các bài kiểm tra định kỳ và cuối kỳ.

Tài liệu học tập :

- Lê Hƣ̃u Đaṭ. Lâp̣ trình Windows. NXB Giáo duc̣ .

- Charles Petzold. Programming Windows, fifth edition. Microsoft Press. 1998.

- Johnson M. Hart. Windows System Programming Third Edition. Addison Wesley

Professional. 2004.

Hình thức và tiêu chuẩn đánh giá sinh viên:

- Hình thức thi cuối kỳ : Thi vấn đáp.

- Sinh viên phải đảm bảo các điều kiện theo Quy chế của Nhà trƣờng và của Bộ

Thang điểm: Thang điểm chữ A, B, C, D, F

Điểm đánh giá học phần: Z = 0,3X + 0,7Y.

Bài giảng môn học: Lâp̣ triǹ h Windows

i

MỤC LỤC

LỜI NÓI ĐẦU............................................................................................................................1

CHƢƠNG 1: CÁC KHÁI NIỆM CƠ BẢN ...............................................................................2

1. Giới thiệu về môi trƣờng lập trình Windows ..................................................................2

1.1 Cơ sở về hệ điều hành Windows ............................................................................2

1.2 Các phiên bản của hệ điều hành Windows.............................................................2

1.3 Vai trò của Windows trên thị trƣờng phần mềm ....................................................3

2. Thƣ viện Win32 và Win64 ..............................................................................................3

2.1 Win32 API..............................................................................................................3

2.2 Win64 API..............................................................................................................4

3. Các bƣớc phát triển ứng dụng trên Windows..................................................................4

3.1 Chƣơng trình Win32 đơn giản nhất. .......................................................................4

3.2 Chƣơng trình cƣ̉a sổ đơn giản.................................................................................5

3.3 Quản lý các thông điệp .........................................................................................14

3.4 Vòng lặp xử lý thông điệp ....................................................................................17

Bài tập: ..............................................................................................................................20

CHƢƠNG 2: HỆTHỐNG FILE VÀ THƢ MUC̣ ....................................................................21

1. Truy câp̣ vàsƣ̉ duṇ g hê ̣thống file trên môi trƣờng Windows.......................................21

2. Các ví dụ về thao tác với file.........................................................................................21

2.1 Serialization ..........................................................................................................21

2.2 Cài đặt một lớp Serializable..................................................................................24

3. Quản lý file và thƣ mục nâng cao..................................................................................40

Bài tập: ..............................................................................................................................40

CHƢƠNG 3: HỆTHỐNG CSDL REGISTRY........................................................................41

1. Khái niệm và vai trò của CSDL Registry ......................................................................41

1.1 Các khóa, các hive ................................................................................................41

1.2 Các kiểu dữ liệu ....................................................................................................42

2. Quản lý CSDL Registry.................................................................................................43

2.1 Thay đổi khóa .......................................................................................................43

2.2 Thêm mớ

i khóa .....................................................................................................43

2.3 Liêṭ kê các khóa ....................................................................................................44

3. Can thiêp̣ Windows qua Registry ..................................................................................44

3.1 Thay đổi giao diêṇ ................................................................................................44

3.2 Thay đổi các thiết lâp̣ đối vớ

i các ổ điã

................................................................44

Bài giảng môn học: Lâp̣ triǹ h Windows

ii

3.3 Thay đổi các thiết lâp̣ vớ

i ngƣờ

i dùng ..................................................................44

Bài tập: ..............................................................................................................................44

CHƢƠNG 4: QUẢN LÝ CÁC TIẾN TRÌNH VÀ LUỒNG....................................................45

1. Các tiến trình và luồng trên Windows...........................................................................45

2. Các thao tác với tiến trình .............................................................................................46

2.1. Tạo tiến trình........................................................................................................46

2.2. Kết thúc và thoát khỏi một tiến trình ...................................................................47

2.3. Các thao tác với biến môi trƣờng của Windows..................................................47

2.4. Ví dụ: Ghi nhâṭ ký

thờ

i gian thƣc̣ hiêṇ của các tiến trình ....................................47

3. Quản lý luồng (thread) trên Windows...........................................................................49

3.1. Các khái niệm cơ bản...........................................................................................49

3.2. Mô hình Boss/Worker và các mô hình khác ........................................................49

3.3. Bô ̣nhớ dành cho luồng ........................................................................................49

3.4. Độ ƣu tiên và các trạng thái của luồng ................................................................50

4. Môṭ số vídu ̣về tiến trình và

luồng ...............................................................................50

4.1. Tìm kiếm song song với các tiến trình.................................................................50

4.2. Thuâṭ toán sắp xếp trôṇ bằng đa luồng ................................................................52

Bài tập: ..............................................................................................................................55

CHƢƠNG 5: CÁC DỊCH VỤ CỦA WINDOWS....................................................................56

1. Tổng quan về dic̣h vu ̣trên Windows.............................................................................56

2. Các thành phần của một dịch vụ ...................................................................................56

2.1 Hàm main()...........................................................................................................56

2.2 Hàm ServiceMain()...............................................................................................56

2.3 Kiểm soát dịch vụ qua các Handler ......................................................................56

3. Ví du: dịch vụ đơn giản trên Windows..........................................................................57

4. Quản lý các dịch vụ của Windows ................................................................................60

4.1 Các phƣơng pháp kiểm soát các dịch vụ của Windows........................................60

4.2 Ví dụ : Điều khiển các dic̣h vu ̣của Windows.......................................................60

Bài tập: ..............................................................................................................................64

CHƢƠNG 6: LÂP̣ TRÌNH SOCKET.......................................................................................65

1. Khái niệm sockets trên Windows..................................................................................65

2. Các hàm sockets phía server..........................................................................................65

3. Các hàm sockets phía client ..........................................................................................66

4. Ứng dụng mang đơn giản ..............................................................................................66

Bài giảng môn học: Lâp̣ triǹ h Windows

iii

4.1 Phía server.............................................................................................................66

4.2 Phía client .............................................................................................................72

5. Windows Sockets 2.0 ....................................................................................................74

Bài tập: ..............................................................................................................................74

CHƢƠNG 7: THƢ VIÊṆ LIÊN KẾT ĐỘNG .........................................................................75

7.1. Khái niệm và ứng dụng của thƣ viện liên kết động....................................................75

7.2. Hệ thống thƣ viện liên kết động của Windows ..........................................................75

7.3. Các bƣớc tạo một thƣ viện DLL.................................................................................76

7.4. Chia sẻ bô ̣nhớ giƣ̃a các thƣ viêṇ liên kết đôṇ g..........................................................83

7.5. Các vấn đề khác về thƣ viện liên kết động.................................................................84

Bài tập: ..............................................................................................................................85

TÀI LIỆU THAM KHẢO ........................................................................................................86

ĐỀ THI THAM KHẢO............................................................................................................87

Bài giảng môn học: Lâp̣ triǹ h Windows

1

LỜI NÓI ĐẦU

Hệ điều hành Windows của Microsoft là hệ điều hành đƣợc cài đặt nhiều nhất trên các

máy PC hiện nay. Sự phổ biến của Windows và nền tảng phần cứng của Intel dẫn tới sự cần

thiết phải có những hiểu biết sâu về chúng, đặc biệt đối với những lập trình viên. Mục đích

của học phần này là cung cấp cho học viên một cái nhìn tổng quan, từ cơ bản tới chi tiết về

các khía cạnh của lập trình trên hệ điều hành Windows, từ các chi tiết trong cấu trúc của một

chƣơng trình tới các khái niệm cấp cao về tiến trình, luồng, xử lý song song, thƣ viện DLL,

lập trình Socket, can thiệp vào cơ sở dữ liệu Registry ....

Tài liệu này dựa trên những kinh nghiệm và nghiên cứu mà tác giả đã đúc rút, thu thập

trong quá trình giảng dạy môn học Lập trình C trên Windows, cùng với sự tham khảo của các

tài liệu của các đồng nghiệp , các tác giả trong và ngoài nƣớc , tƣ̀ điển trƣc̣ tuyến Wikipedia .

Với bẩy chƣơng đƣợc chia thành các chủ đề khác nhau từ các khá

i niêṃ cơ bản cho tới các

thao tác với hệ thống file, thƣ mục, hệ thống CSDL Registry, quản lý tiến trình và luồng, lập

trình quản lý dịch vụ, lập trình socket, thƣ viện liên kết động DLL… hy vọng sẽ cung cấp cho

các em sinh viên , các bạn độc giả một tài liệu bổ ích . Mặc dù đã rất cố gắng song vẫn không

tránh khỏi một số thiếu sót , hy vọng sẽ đƣợc các bạn bè đồng nghiệp , các em sinh viên , các

bạn độc giả góp ý chân thành để tôi có thể hoàn thiện hơn nữa tài liệu này.

Xin gửi lời cảm ơn chân thành tới các bạn bè đồng nghiệp và Ban chủ nhiệm khoa

Công nghệ Thông tin đã tạo điều kiện giúp đỡ để tài liệu này có thể hoàn thành.

Hải phòng, tháng 06 năm 2010

Tác giả

Nguyêñ Hƣ̃u Tuân

Bài giảng môn học: Lâp̣ triǹ h Windows

2

Chƣơng 1: Các khái niệm cơ bản

Tài liệu này đƣợc biên soạn để cung cấp cho ngƣời hoc̣ những kiến thức cơ bản vế việc

viết các chƣơng trình sử dụng giao diện lập trình API trên môi trƣờng Win32. Ngôn ngữ đƣợc

sử dụng là ngôn ngữ C, hầu hết các trình biên dịch C++ hiện nay đều có thể dịch đƣợc các

chƣơng trình mẫu trình bày trong tài liệu này. Hầu hết tất cả các thông tin đƣợc trình bày

trong tài liệu này đều có thể ứng dụng cho bất cứ ngôn ngữ nào có thể truy cập các hàm API,

chẳng hạn nhƣ Java, Assembly, và Visual Basic.

Tài liệu này đƣợc biên soạn không phải để dạy các bạn độc giả lập trình bằng ngôn ngữ

C, hoặc dạy chúng ta sử dụng bất cứ một trình biên dịch cụ thể nào (chẳng hạn nhƣ Borland

C++, Visual C++, …) tuy nhiên trong phần phụ lục tôi sẽ dành một chút để cung cấp cho các

bạn một số chú ý về một số trình biên dịch mà tôi đã sử dụng.

1. Giới thiệu về môi trƣờng lập trình Windows

1.1 Cơ sở về hệ điều hành Windows

Hệ điều hành Windows là một hệ điều hành dành cho ngƣời dùng cuối (End User

Operating System) với các tính năng cơ bản sau: đa nhiệm, giao diện đồ họa, plug and play và

quan trọng nhất là Windows Interface Based - tức là giao diện các chƣơng trình chạy trên

Windows đều có dạng các cửa sổ.

1.2 Các phiên bản của hệ điều hành Windows

Do cách dùng tiếng Anh và việc hiểu tiếng Anh dẫn tới việc nhiều ngƣời hiểu về các

phiên bản của hệ điều hành Windows chƣa chính xác. Ví dụ có bạn cho rằng Windows XP

Professional Edition và Windows XP Home Edition là hai phiên bản khác nhau của hệ điều

hành Windows. Thực ra nhƣ vậy vừa đúng lại vừa không đúng, đúng là Windows XP

Professional Edition và Windows XP Home Edition là hai Edition khác nhau của cùng 1

Version Windows XP, có lẽ sai là vì hiểu từ Edition và Version sai. Version có nghĩa là một

phiên bản, thƣờng đi kèm với các số hiệu của phiên bản (1.0, 1.2. … 5.0) và thƣờng là một

thay đổi lớn đối với bản thân phần mềm, ví dụ nhƣ đối với Windows thì có 3 thay đổi lớn:

thay đổi về kiến trúc nền tảng của hệ điều hành (tức là phần kernel của hệ điều hành), hai là

cập nhật các bản vá (patch) cho các lỗi của phiên bản trƣớc đó đối với tất cả các phần của hệ

điều hành, ba là các phần mới của hệ điều hành (có thể là các ứng dụng đi kèm hoặc hỗ trợ

thêm các công nghệ mới, ví dụ nhƣ đối với Windows là chuẩn Wi-Fi, DVD, dot NET

framework hay các ứng dụng nhƣ Windows Media Player, IE …).

Còn Edition là ấn bản khác nhau của cùng một phiên bản, các Edition thƣờng gắn với

các yếu tố về địa lý, ngôn ngữ khác nhau (ví dụ nhƣ Compact Edition nghĩa là bản rút gọn,

Standard Edition là bản chuẩn, Ultimate Edition là bản có các tính năng cao cấp nhất …). Đối

với hệ điều hành Windows các Edition khác nhau thƣờng phân biệt bởi các tính năng của

chúng, do nhắm tới việc phục vụ các đối tƣợng khác nhau nên Microsoft bỏ đi một số tính

năng không cần thiết và tăng thêm các tính năng mà đối tƣợng ngƣời dùng hay dùng ví dụ

nhƣ bản Home Edition nhắm tới ngƣời dùng gia đình nên các tính năng đồ họa, video, âm

thanh phải tốt, còn bản Professional nhắm tới các ngƣời dùng chuyên nghiệp có trình độ cao

nên các tính năng hệ thống sẽ cao hơn.

Windows có các phiên bản sau đây:

Windows 1.01

Windows 2.03

Tải ngay đi em, còn do dự, trời tối mất!