Bài giảng Lập trình Windows: Bài 8 - Trần Ngọc Bảo
lượt xem 3
download
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.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lập trình Windows: Bài 8 - Trần Ngọc Bảo
- Đạ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
- Đạ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
- 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)
- 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)
- 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)
- 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)
- Đạ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
- 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)
- 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)
- 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))
- 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))
- 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))
- 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))
- Đạ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
- 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))
- 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))
- 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))
- 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))
- 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))
- 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))
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình Windows bằng C Sharp (C#) - GV. Nguyễn Thành Chiến
38 p | 231 | 70
-
Bài giảng Lập trình Windows - Phạm Ngọc Hưng (ĐH Bách Khoa)
312 p | 225 | 53
-
Bài giảng Lập trình Windows - ĐH Hàng Hải
96 p | 211 | 41
-
Bài giảng Lập trình Window: Chương 6 - Phan Trọng Tiến
35 p | 167 | 20
-
Bài giảng Lập trình Windows - Phạm Ngọc Hưng
84 p | 107 | 8
-
Bài giảng Lập trình Windows Phone (Module 2): Bài 1 - Trần Duy Thanh
58 p | 96 | 8
-
Bài giảng Lập trình Windows: Bài 9 - Trần Ngọc Bảo
26 p | 112 | 8
-
Bài giảng Lập trình Windows - Chương 1: Tổng quan lập trình Windows (2016)
6 p | 151 | 8
-
Bài giảng Lập trình Windows: Bài 4 - Trần Ngọc Bảo
86 p | 93 | 8
-
Bài giảng Lập trình Windows: Bài 2 - Trần Ngọc Bảo
71 p | 73 | 7
-
Bài giảng Lập trình Windows: Chương 3 - Lập trình C ++ trên Windows
16 p | 85 | 7
-
Bài giảng Lập trình Windows Phone (Module 4): Bài 8 - Trần Duy Thanh
15 p | 87 | 6
-
Bài giảng Lập trình Windows: Chương 1 - Một số khái niệm cơ bản
56 p | 126 | 6
-
Bài giảng Lập trình Windows: Bài 1 - Trần Ngọc Bảo
77 p | 100 | 6
-
Bài giảng Lập trình Windows: Bài 5 - Trần Ngọc Bảo
55 p | 71 | 6
-
Bài giảng Lập trình Windows: Bài 6 - Trần Ngọc Bảo
58 p | 61 | 4
-
Bài giảng Lập trình Windows: Bài 3 - Trần Ngọc Bảo
106 p | 74 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn