Bài giảng Lập trình trên môi trường Windows: Chương 6 do Phạm Minh Tuấn biên soạn bao gồm hai nội dung chính. Trong đó, phần 1 trình bày về thư viện liên kết động và phần 2 là về Hook. Mời các bạn tham khảo bài giảng để bổ sung thêm kiến thức về lĩnh vực này. | LẬP TRÌNH TRÊN MÔI TRƯỜNG WINDOWS *** Dynamic Link Library & Hook Phạm Minh Tuấn pmtuan@ 5/14/2020 5:11:45 AM Khoa CNTT - ĐH KHTN Nội dung trình bày Thư viện liên kết động Hook 5/14/2020 5:11:45 AM Khoa CNTT - ĐH KHTN Thư viện liên kết động - DLL Giới thiệu Xây dựng DLL Sử dụng DLL 5/14/2020 5:11:45 AM Khoa CNTT - ĐH KHTN Thư viện liên kết động - DLL Giới thiệu - Liên kết (Linking) là gì? Liên kết là cách thức mà trình biên dịch nhúng/kết hợp các đoạn mã thực thi của những module thư viện (Lib) vào chương trình. Có 2 cách liên kết Liên kết tĩnh (Static linking) Liên kết động (Dynamic linking) 5/14/2020 5:11:45 AM Khoa CNTT - ĐH KHTN Thư viện liên kết động - DLL Giới thiệu - Các loại thư viện Thư viện liên kết tĩnh (Static linking library) Dạng file: .LIB Chứa mã lệnh nhị phân của các hàm thư viện Dùng để nhúng vào file chương trình khi thực hiện giai đoạ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 hàm thư viện vào trong những module gọi 5/14/2020 5:11:45 AM Khoa CNTT - ĐH KHTN Thư viện liên kết động - DLL Giới thiệu - Các loại thư viện Thư viện liên kết tĩnh (Static linking library) Ư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 Chương trình sẽ chạy nhanh hơn (nếu kích thước nhỏ) Khuyết điểm: Đoạn mã lệnh được nhúng vào file chương trình . Kích thước chương trình lớn, tốn bộ nhớ Đoạn mã lệnh được nhúng vào nhiều file chương trình khác nhau=> không tối ưu 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 5/14/2020 5:11:45 AM Khoa CNTT - ĐH KHTN Thư viện liên kết động - DLL Giới thiệu - Các loại thư viện Thư viện liên kết động (Dynamic linking library) Dạng file: .LIB và .DLL File .Lib: Thư viện nhập (Import library). Không chứa mã lệnh của các hàm, 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 File .DLL: Chứa . | LẬP TRÌNH TRÊN MÔI TRƯỜNG WINDOWS *** Dynamic Link Library & Hook Phạm Minh Tuấn pmtuan@ 5/14/2020 5:47:10 AM Khoa CNTT - ĐH KHTN Nội dung trình bày Thư viện liên kết động Hook 5/14/2020 5:47:10 AM Khoa CNTT - ĐH KHTN Thư viện liên kết động - DLL Giới thiệu Xây dựng DLL Sử dụng DLL 5/14/2020 5:47:10 AM Khoa CNTT - ĐH KHTN Thư viện liên kết động - DLL Giới thiệu - Liên kết (Linking) là gì? Liên kết là cách thức mà trình biên dịch nhúng/kết hợp các đoạn mã thực thi của những module thư viện (Lib) vào chương trình. Có 2 cách liên kết Liên kết tĩnh (Static linking) Liên kết động (Dynamic linking) 5/14/2020 5:47:10 AM Khoa CNTT - ĐH KHTN Thư viện liên kết động - DLL Giới thiệu - Các loại thư viện Thư viện liên kết tĩnh (Static linking library) Dạng file: .LIB Chứa mã lệnh nhị phân của các hàm thư viện Dùng để nhúng vào file chương trình khi thực hiện giai đoạ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 hàm thư