intTypePromotion=1
ADSENSE

Lập trình windows - Thư viện liên kết động

Chia sẻ: Hoang Thuy | Ngày: | Loại File: PDF | Số trang:43

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

Tài liệu tham khảo lập trình windows này giúp các bạn biết thêm về thư viên liên kết động và Cung cấp cho sinh viên kiến thức và phương pháp lập trình trên môi trường Windows: cơ chế quản lý chương trình, lập trình giao diện đồ họa (GUI), cơ chế quản lý bộ nhớ, lập trình đồng hành...

Chủ đề:
Lưu

Nội dung Text: Lập trình windows - Thư viện liên kết động

  1. Đại Học Sư Phạm Tp. Hồ Chí Minh LẬP TRÌNH WINDOWS Khoa Toán – Tin Học 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 th vi liên độ Trần Ngọc Bảo - Email: tnbao.dhsp@gmail.com
  2. Đại Học Sư Phạm Tp. Hồ Chí Minh LẬP TRÌNH WINDOWS Khoa Toán – Tin Học 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 th vi liên độ
  3. GIỚI THIỆU – LIÊN KẾT LÀ GÌ ? BÀI GIẢNG HỌC PHẦN LẬP TRÌNH WINDOWS THƯ VIỆN LIÊN KẾT ĐỘNG - DLL CT Tiền lương CT Kế toán CT Nhân sự Source Source Source code code code code TL.EXE KT.EXE NS.EXE CSDL CSDL CSDL TRẦN NGỌC BẢO KHOA KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (3)
  4. GIỚI THIỆU – LIÊN KẾT LÀ GÌ ? BÀI GIẢNG HỌC PHẦN LẬP TRÌNH WINDOWS THƯ VIỆN LIÊN KẾT ĐỘNG - DLL CT Tiền CT CT CT Kế CT Nhân lương toán sự Source Source Source code code code code TL.EXE KT.EXE NS.EXE CSDL TRẦN NGỌC BẢO KHOA KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (4)
  5. GIỚI THIỆU – LIÊN KẾT LÀ GÌ ? BÀI GIẢNG HỌC PHẦN LẬP TRÌNH WINDOWS THƯ VIỆN LIÊN KẾT ĐỘNG - DLL Module Module Kế toán toán Tiền lương TL.DLL KT.DLL KT.DLL DataAccess.DLL CSDL TRẦN NGỌC BẢO KHOA KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (5)
  6. GIỚI THIỆU – LIÊN KẾT LÀ GÌ ? BÀI GIẢNG HỌC PHẦN LẬP TRÌNH WINDOWS Thư viện là một tập tin chứa những hàm hoặc tài THƯ VIỆN LIÊN KẾT ĐỘNG - DLL nguyên khác có sẵn mà các ứng dụng có thể lấy để sử dụng. Các tài nguyên này thường cho phép nhiều ứng Cá tài th dụng cùng chia sẻ sử dụng dễ dàng một đoạn mã hoặc tài nguyên nguyên 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 Liên kết động TRẦN NGỌC BẢO KHOA 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 LẬP TRÌNH WINDOWS Khoa Toán – Tin Học 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 th vi liên độ
  8. GIỚI THIỆU – CÁC LOẠI THƯ VIỆN BÀI GIẢNG HỌC PHẦN LẬP TRÌNH WINDOWS THƯ VIỆN LIÊN KẾT ĐỘNG - DLL 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 hà th - 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 các hàm thư viện biên copy mã các hàm th vi vào trong những module gọi chúng TRẦN NGỌC BẢO KHOA KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (8)
  9. THƯ VIỆN LIÊN KẾT TĨNH BÀI GIẢNG HỌC PHẦN LẬP TRÌNH WINDOWS Chương trình chính THƯ VIỆN LIÊN KẾT ĐỘNG - DLL Thư viện liên kết Source Source code Source code Compiler Compiler Compiler Linker LIB OBJ files AB.EXE TRẦN NGỌC BẢO KHOA KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (9)
  10. THƯ VIỆN LIÊN KẾT TĨNH BÀI GIẢNG HỌC PHẦN LẬP TRÌNH WINDOWS THƯ VIỆN LIÊN KẾT ĐỘNG - DLL Ưu điểm - Dễ thực hiện th hi - 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 chạy nhanh hơn vì không cần thực hiện load thư viện Khuyết điểm - Đ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ớ. 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 TRẦN NGỌC BẢO KHOA 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 BÀI GIẢNG HỌC PHẦN LẬP TRÌNH WINDOWS THƯ VIỆN LIÊN KẾT ĐỘNG - DLL 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 mã lệnh nhị phân của các hàm thư viện Đượ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 KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (11) 11)
  12. THƯ VIỆN LIÊN KẾT ĐỘNG BÀI GIẢNG HỌC PHẦN LẬP TRÌNH WINDOWS Chương trình chính THƯ VIỆN LIÊN KẾT ĐỘNG - DLL Thư viện liên kết Source code Source code (Source file) Source code Compiler Compiler Compiler (Header files) Linker OBJ files DLL AB.EXE TRẦN NGỌC BẢO KHOA 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 BÀI GIẢNG HỌC PHẦN LẬP TRÌNH WINDOWS Ưu điểm THƯ VIỆN LIÊN KẾT ĐỘNG - DLL - Mã lệnh của các hàm sẽ không được nhúng vào trong file chương trình của ứng 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 vào hàm thư viện vào bộ nhớ nh - 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) - 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 Khuyết điểm - Khó sử dụng hơn TRẦN NGỌC BẢO KHOA 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 LẬP TRÌNH WINDOWS Khoa Toán – Tin Học 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 th vi liên độ
  15. XÂY DỰNG DLL BÀI GIẢNG HỌC PHẦN LẬP TRÌNH WINDOWS THƯ VIỆN LIÊN KẾT ĐỘNG - DLL Xây dựng thư viện DLL bằng thư viện Win32API Chọn loại Project: “Win32 Dynamic Link Library” TRẦN NGỌC BẢO TR KHOA KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (15) 15)
  16. XÂY DỰNG DLL BÀI GIẢNG HỌC PHẦN LẬP TRÌNH WINDOWS THƯ VIỆN LIÊN KẾT ĐỘNG - DLL Xây dựng thư viện DLL bằng thư viện MFC Chọn loại Project: “MFC AppWizard(Dll)” AppWizard(Dll) TRẦN NGỌC BẢO KHOA 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 BÀI GIẢNG HỌC PHẦN LẬP TRÌNH WINDOWS THƯ VIỆN LIÊN KẾT ĐỘNG - DLL Tạo lập DLL Phân tích các khai báo kh bá Phân tích hàm DllMain Demo liên kết DLL với ứng dụng DLL TRẦN NGỌC BẢO KHOA 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 BÀI GIẢNG HỌC PHẦN LẬP TRÌNH WINDOWS THƯ VIỆN LIÊN KẾT ĐỘNG - DLL Chọn menu File New Chọn Tab Projects Chọn loại project “Win32 Dynamic Link Library” lo project Win32 Dynamic Link Library Đặt tên project trong ô “Project name” Xác định đường dẫn thư mục trong “Location” Step 1: Chọn loại ứng dụng “A DLL that exports some Ch “A DLL th symbols” Nhấn “Finish” để kết thúc TRẦN NGỌC BẢO KHOA 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 BÀI GIẢNG HỌC PHẦN LẬP TRÌNH WINDOWS THƯ VIỆN LIÊN KẾT ĐỘ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) //Khai báo 1 biến “xuất khẩu” báo bi xu kh DLLEXPORT int nMyValue; //Khai báo 1 hàm “xuất khẩu” DLLEXPORT int MyFunction(void) int MyFunction(void) dllimport: load 1 hàm, dữ liệu, tài nguyên,…từ 1 DLL khác để sử dụng #define DLLIMPORT __declspec(dllimport) //Khai báo 1 biến “nhập khẩu” báo bi nh kh DLLIMPORT int nMyValue; //Khai báo 1 hàm “nhập khẩu” DLLIMPORT int MyFunction(void) int MyFunction(void) TRẦN NGỌC BẢO KHOA 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 BÀI GIẢNG HỌC PHẦN LẬP TRÌNH WINDOWS THƯ VIỆN LIÊN KẾT ĐỘNG - DLL Phân tích hàm DllMain BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved LPVOID lpReserved ) { switch (ul switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: case DLL_THREAD_ATTACH: DLL case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; } TRẦN NGỌC BẢO KHOA 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
2=>2