intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Lập trình Windows: Bài 8 - Trần Ngọc Bảo

Chia sẻ: Đinh Gấu | Ngày: | Loại File: PDF | Số trang:43

87
lượt xem
3
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Mời các bạn cùng tham khảo "Bài giảng Lập trình Windows: Bài 8 - Trần Ngọc Bảo" để nắm bắt được những nội dung về thư viên liên kết, các loại thư viện liên kết và xây dựng thư viện liên kết động. Hy vọng, đây là tài liệu tham khảo hữu ích dành cho các bạn.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Lập trình Windows: Bài 8 - Trần Ngọc Bảo

  1. Đại Học Sư Phạm Tp. Hồ Chí Minh Khoa Toán – Tin Học LẬP TRÌNH WINDOWS Thư viện liên kết ế động ((DLL – DYNAMIC LINK LIBRARY)) • Giới thiệu thư viên liên kết • Các loại thư viện liên kết • Xây dựng thư viện liên kết động Trần Ngọc Bảo - Email: tnbao.dhsp@gmail.com
  2. Đại Học Sư Phạm Tp. Hồ Chí Minh Khoa Toán – Tin Học LẬP TRÌNH WINDOWS Thư viện liên kết ế động ((DLL – DYNAMIC LINK LIBRARY)) • Giới thiệu thư viên liên kết • Các loại thư viện liên kết • Xây dựng thư viện liên kết động
  3. RÌNH WINDOWS S GIỚI THIỆU – LIÊN KẾT LÀ GÌ ? ĐỘNG - DLL CT Kế toán CT Nhân sự CT Tiền lương N LẬP TR N LIÊN KẾT Đ Source Source Source code ỌC PHẦN code code BÀI GIIẢNG HỌ Ư VIỆN TL.EXE KT.EXE NS.EXE THƯ CSDL CSDL CSDL TRẦN NGỌC BẢO ” KHOA TOÁN -TIN HỌC ” ĐẠI HỌC SƯ PHẠM TP.HCM ” (3)
  4. RÌNH WINDOWS S GIỚI THIỆU – LIÊN KẾT LÀ GÌ ? ĐỘNG - DLL CT Kế CT Nhân CT Tiền t á toán sự lương N LẬP TR N LIÊN KẾT Đ Source Source Source code ỌC PHẦN code code BÀI GIIẢNG HỌ Ư VIỆN KT.EXE NS.EXE TL.EXE THƯ CSDL TRẦN NGỌC BẢO ” KHOA TOÁN -TIN HỌC ” ĐẠI HỌC SƯ PHẠM TP.HCM ” (4)
  5. RÌNH WINDOWS S GIỚI THIỆU – LIÊN KẾT LÀ GÌ ? ĐỘNG - DLL Module Module Kế toán Tiền lương N LẬP TR N LIÊN KẾT Đ ỌC PHẦN KT.DLL DataAccess.DLL TL.DLL BÀI GIIẢNG HỌ Ư VIỆN THƯ CSDL TRẦN NGỌC BẢO ” KHOA TOÁN -TIN HỌC ” ĐẠI HỌC SƯ PHẠM TP.HCM ” (5)
  6. RÌNH WINDOWS S GIỚI THIỆU – LIÊN KẾT LÀ GÌ ? ĐỘNG - DLL ™ Thư viện là một tập tin chứa những hàm hoặc tài nguyên khác có sẵn mà các ứng dụng có thể lấy để sử d dụng. Cá Các tài nguyên ê này à th thường ờ choh phép hé nhiều hiề ứng ứ dụng cùng chia sẻ sử dụng dễ dàng một đoạn mã hoặc tài nguyên N LẬP TR N LIÊN KẾT Đ ™ Liên kết là cách thức mà trình biên dịch nhúng/kết hợp ỌC PHẦN các á đoạn mã thực thi của ủ những module thư việnệ (Lib) ( ) vào à chương trình BÀI GIIẢNG HỌ Ư VIỆN ™ Có 2 cách liên kết: ™Liên kết tĩnh THƯ ™Liên kết động TRẦN NGỌC BẢO ” KHOA TOÁN -TIN HỌC ” ĐẠI HỌC SƯ PHẠM TP.HCM ” (6)
  7. Đại Học Sư Phạm Tp. Hồ Chí Minh Khoa Toán – Tin Học LẬP TRÌNH WINDOWS Thư viện liên kết ế động ((DLL – DYNAMIC LINK LIBRARY)) • Giới thiệu thư viên liên kết • Các loại thư viện liên kết • Xây dựng thư viện liên kết động
  8. RÌNH WINDOWS S GIỚI THIỆU – CÁC LOẠI THƯ VIỆN ĐỘNG - DLL ™ Thư viện liên kết tĩnh (Static Linking Library) - Dạng file: .LIB N LẬP TR - Chứa Chứ mãã lệnh lệ h nhị hị phân hâ của ủ các á hàm hà thư th viện iệ N LIÊN KẾT Đ - Dùngg để nhúng g vào file chươngg trình khi thực hiện giai g đoạn ỌC PHẦN liên kết (linking) của quá trình biên dịch - Trình biên dịch sẽ copy đoạn mã lệnh của các hàm thư viện BÀI GIIẢNG HỌ Ư VIỆN vào trong những module gọi chúng THƯ TRẦN NGỌC BẢO ” KHOA TOÁN -TIN HỌC ” ĐẠI HỌC SƯ PHẠM TP.HCM ” (8)
  9. RÌNH WINDOWS S THƯ VIỆN LIÊN KẾT TĨNH ĐỘNG - DLL Thư viện liên kết Chương trình chính Source code Source code N LẬP TR N LIÊN KẾT Đ ỌC PHẦN Compiler Compiler BÀI GIIẢNG HỌ Ư VIỆN LIB Linker OBJ files THƯ AB.EXE TRẦN NGỌC BẢO ” KHOA TOÁN -TIN HỌC ” ĐẠI HỌC SƯ PHẠM TP.HCM ” (9)
  10. RÌNH WINDOWS S THƯ VIỆN LIÊN KẾT TĨNH ĐỘNG - DLL ™ Ưu điểm - Dễ thực hiện - Chương trình có thể chạy độc lập, không cần các file kèm theo N LẬP TR N LIÊN KẾT Đ - Chương trình chạy nhanh hơn vì không cần thực hiện load thư viện ™ Khuyết y điểm ỌC PHẦN - Đoạn mã lệnh được nhúng vào chương trình Æ kích thước chương trình lớn, tốn bộ nhớ. BÀI GIIẢNG HỌ Ư VIỆN - Đoạn mã lệnh được nhúng vào nhiều file chương trình khác nhau Æ không g tối ưu THƯ - Khi thay đổi hàm thư viện Æ phải biên dịch lại toàn bộ các file chương trình TRẦN NGỌC BẢO ” KHOA TOÁN -TIN HỌC ” ĐẠI HỌC SƯ PHẠM TP.HCM ” (10 10))
  11. THƯ VIỆN LIÊN KẾT ĐỘNG RÌNH WINDOWS S ĐỘNG - DLL ™ Thư viện liên kết động (Dynamic Linking Library) - Dạng file: .LIB và DLL - File .LIB LIB N LẬP TR N LIÊN KẾT Đ ƒ Thư viện nhập (Import Library) ƒ Không chứa mã lệnh của các hàm ỌC PHẦN ƒ Chỉ chứa các thông tin cần ầ thiết ế để ể hệ điều ề hành nạp thư viện DLL và xác định các hàm export trong DLL ƒ Sử dụng khi dùng cách thức load – time dynamic linking BÀI GIIẢNG HỌ Ư VIỆN - File .DLL ƒ Chứa mã lệnh nhị phân của các hàm thư viện THƯ ƒ Được tải vào bộ nhớ khi ứng dụng gọi hàm thư viện ƒ Cần phải chép tập tin đi kèm khi thực thi ứng dụng TRẦN NGỌC BẢO ” KHOA TOÁN -TIN HỌC ” ĐẠI HỌC SƯ PHẠM TP.HCM ” (11 11))
  12. RÌNH WINDOWS S THƯ VIỆN LIÊN KẾT ĐỘNG ĐỘNG - DLL Thư viện liên kết Chương trình chính Source code S Source code (Source file) N LẬP TR N LIÊN KẾT Đ Source code ỌC PHẦN Compiler (Header files) Compiler BÀI GIIẢNG HỌ Ư VIỆN Linker DLL OBJ files THƯ AB.EXE TRẦN NGỌC BẢO ” KHOA TOÁN -TIN HỌC ” ĐẠI HỌC SƯ PHẠM TP.HCM ” (12 12))
  13. THƯ VIỆN LIÊN KẾT ĐỘNG RÌNH WINDOWS S ĐỘNG - DLL ™ Ưu điểm - Mã lệnh ệ của các hàm sẽ không g được ợ nhúng g vào trong g file chương g trình của ứng g dụng Æ Kích thước của ứng dụng nhỏ - Ứng dụng chỉ cần lưu thông tin của hàm thư viện, khi cần hệ điều hành sẽ load các hàm thư viện vào bộ nhớ N LẬP TR N LIÊN KẾT Đ - Nhiều ứng dụng có thể dùng chung 1 DLL. Do đó, tiết kiệm bộ nhớ (thông thường mỗi ứng dụng có data riêng, nhưng có thể chia sẻ mã lệnh) ỌC PHẦN - Khi không còn sử dụng, có thể giải phóng DLL khỏi bộ nhớ - Khi cần nâng cấp, chỉ cần thay thế file DLL, các file chương trình khác không bị ảnh hưởng BÀI GIIẢNG HỌ Ư VIỆN ™ Khuyết điểm THƯ - Khó sử dụng hơn TRẦN NGỌC BẢO ” KHOA TOÁN -TIN HỌC ” ĐẠI HỌC SƯ PHẠM TP.HCM ” (13 13))
  14. Đại Học Sư Phạm Tp. Hồ Chí Minh Khoa Toán – Tin Học LẬP TRÌNH WINDOWS Thư viện liên kết ế động ((DLL – DYNAMIC LINK LIBRARY)) • Giới thiệu thư viên liên kết • Các loại thư viện liên kết • Xây dựng thư viện liên kết động
  15. RÌNH WINDOWS S XÂY DỰNG DLL ĐỘNG - DLL ™ Xây dựng thư viện DLL bằng thư viện Win32API N LẬP TR N LIÊN KẾT Đ ỌC PHẦN BÀI GIIẢNG HỌ Ư VIỆN THƯ Chọn loại Project: “Win32 Dynamic Link Library” TRẦN NGỌC BẢO ” KHOA TOÁN -TIN HỌC ” ĐẠI HỌC SƯ PHẠM TP.HCM ” (15 15))
  16. RÌNH WINDOWS S XÂY DỰNG DLL ĐỘNG - DLL ™ Xây dựng thư viện DLL bằng thư viện MFC N LẬP TR N LIÊN KẾT Đ ỌC PHẦN BÀI GIIẢNG HỌ Ư VIỆN THƯ Chọn loại Project: “MFC MFC AppWizard(Dll) AppWizard(Dll)” TRẦN NGỌC BẢO ” KHOA TOÁN -TIN HỌC ” ĐẠI HỌC SƯ PHẠM TP.HCM ” (16 16))
  17. XÂY DỰNG DLL DÙNG THƯ VIỆN WIN32 API RÌNH WINDOWS S ĐỘNG - DLL ™ Tạ ạo lập ập DLL N LẬP TR ™ Phân â tích í h các á khai kh báo bá N LIÊN KẾT Đ ỌC PHẦN ™ Phân tích hàm DllMain BÀI GIIẢNG HỌ Ư VIỆN ™ Demo liên kết DLL với ứng dụng THƯ TRẦN NGỌC BẢO ” KHOA TOÁN -TIN HỌC ” ĐẠI HỌC SƯ PHẠM TP.HCM ” (17 17))
  18. XÂY DỰNG DLL DÙNG THƯ VIỆN WIN32 API RÌNH WINDOWS S ĐỘNG - DLL ™ Chọn menu File Æ New ™ Chọn Tab Projects ™ Chọn loại project “Win32 Win32 Dynamic Link Library Library” N LẬP TR N LIÊN KẾT Đ ™ Đặt tên project trong ô “Project name” ỌC PHẦN ™ Xác định đường dẫn thư mục trong “Location” ™ Step St 1 1: Ch Chọn lloạii ứ ứng d dụng “A DLL that th t exports t some BÀI GIIẢNG HỌ Ư VIỆN symbols” THƯ ™ Nhấn ấ “Finish” để ể kết ế thúc ú TRẦN NGỌC BẢO ” KHOA TOÁN -TIN HỌC ” ĐẠI HỌC SƯ PHẠM TP.HCM ” (18 18))
  19. XÂY DỰNG DLL DÙNG THƯ VIỆN WIN32 API RÌNH WINDOWS S ĐỘNG - DLL ™ dllexport: cung cấp hàm, dữ liệu, tài nguyên,…cho các chương trình/DLL khác sử dụng #define DLLEXPORT __declspec(dllexport) N LẬP TR //Khai báo 1 biến “xuất xuất khẩu khẩu” N LIÊN KẾT Đ DLLEXPORT int nMyValue; //Khai báo 1 hàm “xuất khẩu” ỌC PHẦN DLLEXPORT int MyFunction(void) ™ dllimport: load 1 hàm, dữ liệu, tài nguyên,…từ 1 DLL khác để sử dụng BÀI GIIẢNG HỌ Ư VIỆN #define DLLIMPORT __declspec(dllimport) //Khai báo 1 biến “nhập nhập khẩu” khẩu THƯ DLLIMPORT int nMyValue; //Khai báo 1 hàm “nhập khẩu” DLLIMPORT int MyFunction(void) TRẦN NGỌC BẢO ” KHOA TOÁN -TIN HỌC ” ĐẠI HỌC SƯ PHẠM TP.HCM ” (19 19))
  20. XÂY DỰNG DLL DÙNG THƯ VIỆN WIN32 API RÌNH WINDOWS S ĐỘNG - DLL ™ Phân tích hàm DllMain BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved N LẬP TR N LIÊN KẾT Đ ) { switch (ul (ul_reason_for_call) reason for call) ỌC PHẦN { case DLL_PROCESS_ATTACH: case DLL DLL_THREAD_ATTACH: THREAD ATTACH: BÀI GIIẢNG HỌ Ư VIỆN case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; THƯ } return TRUE; } TRẦN NGỌC BẢO ” KHOA TOÁN -TIN HỌC ” ĐẠI HỌC SƯ PHẠM TP.HCM ” (20 20))
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
4=>1