: 17214 DÙNG CHO SV NGÀNH : - 2010 i 2 CNTT : 3 60 30 30 0 0 0 , - - , , , , , . TS LT TH/Xemina BT KT . 3 0 0 0 1.1. Windows 1.1.1. 1.1.2. Windows 1.1.3. 1.2. 32 64 1.2.1. Win32 API 1.2.2. Win64 API 1.3. 2005 1 1 1 . 4 4 0 2.1. 2.1.1. 2.1.2. Windows 2.1.3. 2.2. 2.2.1. 2 1 2 1 ii TS LT TH/Xemina BT KT 2.2.2. Copy file 2.2.3. 2.3. 2.3.1. 2.3.2. 1 1 . 4 6 0 1 3.1. 3.1.1. , 3.1.2. 3.2. 3.2.1. 3.2.2. 3.2.3. 3.3. 3.3.1. 3.3.2. 3.3.3. 1 1 2 1 2 3 1 . 4 6 0 1 4.1. 4.2. 4.2.1. 4.2.2. 4.2.3. Windows 4.2.4. : 4.3. (thread) trên Windows 4.3.1. 4.3.2. / 4.3.3. 4.3.4. 4.4. 4.4.1. 4.4.2. 2 1 1 2 2 2 1 . 4 6 0 1 5.1. 5.2. 5.2.1. () 5.2.2. () 5.2.3. 5.3. : 1 1 2 2 iii TS LT TH/Xemina BT KT 5.4. 5.4.1. 5.4.2. : Windows 2 2 1 . 4 4 0 0 6.1. 6.2. 6.3. 6.4. 6.4.1. 6.4.2. 6.5. Windows Sockets 2.0 0,5 0,5 0,5 2 0,5 1 0,5 0,5 2 . 4 4 0 0 7.1. 7.2. 7.3. 7.3.1. 7.3.2. 1 1 2 0,5 1 2,5 : - . . . - Charles Petzold. Programming Windows, fifth edition. Microsoft Press. 1998. - Johnson M. Hart. Windows System Programming Third Edition. Addison Wesley Professional. 2004. sinh viên: - - i 1 1: 2 2 2 2 3 3 2.1 Win32 API 3 2.2 Win64 API 4 4 4 3.2 5 3.3 14 3.4 17 20 2: 21 1. 21 2. 21 2.1 Serialization 21 2.2 24 3. 40 40 3: L REGISTRY 41 1. 41 1.1 , 41 1.2 42 2. 43 2.1 43 2.2 43 2.3 44 3. 44 3.1 44 3.2 44 ii 3.3 44 44 4: 45 1. 45 2. 46 2.1. 46 2.2. 47 2.3. 47 2.4. : 47 3. (thread) trên Windows 49 3.1. 49 3.2. / 49 3.3. 49 3.4. 50 4. 50 4.1. 50 4.2. 52 55 5: WINDOWS 56 1. 56 2. 56 2.1 () 56 2.2 () 56 2.3 56 3. : 57 4. 60 4.1 60 4.2 : 60 64 6: 65 1. 65 2. 65 3. 66 4. 66 iii 4.1 66 4.2 72 5. Windows Sockets 2.0 74 74 7: 75 75 75 76 7.4. 83 7.5. 84 85 O 86 87 1 H iu hành Windows ca Microsoft là h iu hành c cài t nhiu nht trên các máy PC hin nay. S ph bin ca Windows và nn tng phn cng ca Intel dn ti s cn thit phi có nhng hiu bit sâu v chúng, c bit i vi nhng lp trình viên. Mc ích ca hc phn này là cung cp cho hc viên mt cái nhìn tng quan, t c bn ti chi tit v các khía cnh ca lp trình trên h iu hành Windows, t các chi tit trong cu trúc ca mt chng trình ti các khái nim cp cao v tin trình, lung, x lý song song, th vin DLL, lp trình Socket, can thip vào c s d liu Registry Lp trình C trên Windows, , , . các thao tác vi h thng file, th mc, h thng CSDL Registry, qun lý tin trình và lung, lp trình qun lý dch v, lp trình socket, th vin liên kt ng DLL các em sinh viên, , , các em sinh viên , . . 6 10 2 API, Borland - 1.2 Các phiên Professional Edition và Windows XP Home Edition là hai phiên -Fi, DVD, dot NET Windows 1.01 Windows 2.03 3 Windows 2.11 Windows 3.0 Windows 3.1x Windows For Workgroups 3.1 Windows NT 3.1 Windows For Workgroups 3.11 Windows 3.2 (released in Simplified Chinese only) Windows NT 3.5 Windows NT 3.51 Windows 95 Windows NT 4.0 Windows 98 Windows 98 SE Windows 2000 Windows Me Windows XP Windows XP 64-bit Edition 2003 Windows Server 2003 Windows XP Professional x64 Edition Windows Fundamentals for Legacy PCs Windows Vista Windows Home Server Windows Server 2008 Windows 7 i Windows - 2. 2.1 Win32 API ra cùng - [...]... Windows 3.1 Chƣơng trình Win32 đơn giản nhất Nếu bạn là một ngƣời mới bắt đầu lập trình trên môi trƣờng Win32 thì thao tác đầu tiên mà bạn cần phải làm đƣợc đó là dịch một chƣơng trình cơ bản trên môi trƣờng Windows Hãy gõ đoạn chƣơng trình trên vào và nếu mọi thứ suôn sẻ bạn sẽ có một chƣơng trình đơn giản nhất (vô nghĩa) trong số các chƣơng trình mà bạn đã làm Hãy nhớ là dịch chƣơng trình. .. while(GetMessage(&Msg, NULL, 0, 0) > 0) Bài tập: Bài tập 1: Viết chƣơng trình mô phỏng chƣơng trình máy tính với các chức năng tính toán đơn giản trên Windows Bài tập 2: Viết chƣơng trình với hệ thống menu cho phép thay đổi màu nền 20 Bài giảng môn học: Lâ ̣p trinh Windows ̀ Chƣơng 2: Hê ̣thố ng file và thƣ mục 1 Truy câ ̣p và sƣ̉ du ̣ng hê ̣ thố ng file trên môi trƣờng Windows Hầ u hế t các ƣ́ng du... hàm chính của một chƣơng trình trên môi trƣờng Windows giống nhƣ hàm main trên môi trƣờng DOS và UNIX Đó là nơi các đoạn mã chƣơng trình sẽ đƣợc thực thi Các tham số của hàm main gồm có: HINSTANCE hInstance 4 Bài giảng môn học: Lâ ̣p trinh Windows ̀ Tham số này quản lý module chƣơng trình (file exe trong bộ nhớ) Hệ điều hành sử dụng tham số này để quản lý chƣơng trình khi thực hiện HINSTANCE... MB_OK); return 0; } Nếu nhƣ chƣơng trình không làm việc bƣớc đầu tiên mà bạn cần làm là đọc tất cả các lỗi (error) mà chƣơng trình báo lên và nếu nhƣ bạn không hiểu ý nghĩa của chúng hãy tra trong bất cứ một quyển sách dạy lập trình hoặc các sách hƣớng dẫn đi kèm với trình biên dịch mà bạn đang sử dụng Hãy chắc chắn là bạn có đầy đủ các file mà trình biên dịch yêu cầu Thật không... thuộc vào trình biên dịch và ngƣời sử dụng (trong việc gây lỗi cũng nhƣ sửa lỗi) Bạn có thể nhận đƣợc một vài cảnh báo từ trình biên dịch về việc chƣơng trình không sử dụng các tham số đƣợc cung cấp cùng với hàm WinMain() Nhƣng không sao điều quan trọng là bạn dịch chƣơng trình thành công và có một chƣơng trình Win32 thực sự Chúng ta sẽ phân tích các đoạn mã chƣơng trình kỹ càng... ̣c MDI trong đó lớp view kế thƣ̀a tƣ̀ lớp CFormView chúng ta cần thiết kế form view của chƣơng trình trình , quá trình này cũng giống nhƣ thiết kế các hộp thoại trong các ƣ́ng du ̣ng da ̣ng Dialog based nhƣng chúng ta không cầ n có các nút để thoát khỏi chƣơng trình hoặc hủy bỏ quá trình thực hiện nhƣ trên các hộp thoại thông thƣờng Với mô ̣t ƣ́ng du ̣ng SDI hoă ̣c MDI chƣ́c... MB_OK); 7 Bài giảng môn học: Lâ ̣p trinh Windows ̀ return 0; } // Hiển thị cửa sổ ShowWindow(hwnd, nCmdShow); UpdateWindow(hwnd); // Step 3: The Message Loop // Step 3: Tạo vòng lặp xử lý thông điệp while(GetMessage(&Msg, NULL, 0, 0) > 0) { TranslateMessage(&Msg); DispatchMessage(&Msg); } return Msg.wParam; } Hình 1 – Cƣ̉a sổ của chƣơng trình khi chạy Đây có lẽ là mô ̣t chƣơng trinh windows. .. cửa sổ Nế u nhƣ vòng lă ̣p thông điê ̣p là trái tim của chƣơng trình thì thủ tục cửa sổ là bộ não của chƣơng trình Đây là nơi mà tấ t cả các thông điê ̣p đƣơ ̣c gƣ̉i tới cƣ̉a sổ của chúng ta đƣơ ̣c xƣ̉ lý LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) 12 Bài giảng môn học: Lâ ̣p trinh Windows ̀ { switch(msg) { case WM_CLOSE: DestroyWindow(hwnd); break;... thực sự có ích nếu chƣơng trình của chúng ta đƣơ ̣c thiế t kế để mô ̣t chƣơng trình khác go ̣i và chúng ta muố n trả về mô ̣t giá tri ̣cu ̣ thể Bƣớc 5: không có bƣớc 5 Đế n đây là hế t , chúng ta không có bƣớc 5 và tôi hy vọng các bạn đã hiểu đƣợc ít nhiều cấ u trúc cơ bản của mô ̣t chƣơng trinh trên Windows ̀ 13 Bài giảng môn học: Lâ ̣p trinh Windows ̀ 3.3 Quản lý các... cha ̣y chƣơng trình simple _window thành ̣ công, chúng ta sẽ copy nó sang ví dụ mới và sƣ̉a đổ i mã nguồ n (code) của chƣơng trình Chúng ta sẽ thêm cho chƣơng trình khả năng hiển thị tên của chƣơng trình khi ngƣời dùng kích chuột vào cửa sổ của chƣơng trình Thƣ̣c chấ t của khả năng mới này là chúng ta sẽ tƣ̣ xƣ̉ lý thông điệp nhấn chuột của ngƣời dùng, tấ t nhiên là trong . 98 Windows 98 SE Windows 2000 Windows Me Windows XP Windows XP 64-bit Edition 2003 Windows Server 2003 Windows XP Professional x64 Edition Windows. 3.1 Windows For Workgroups 3.11 Windows 3.2 (released in Simplified Chinese only) Windows NT 3.5 Windows NT 3.51 Windows 95 Windows NT 4.0 Windows