LẬP TRÌNH WINDOWS - Thư viện liên kết động potx

43 324 0
LẬP TRÌNH WINDOWS - Thư viện liên kết động potx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đại Học Sư Phạm Tp. Hồ Chí Minh Khoa Toán – Tin Học LẬP TRÌNH WINDOWSLẬP TRÌNH WINDOWS ếế Thư viện liên k ế t độngThư viện liên k ế t động ( DLL ( DLL –– DYNAMIC LINK LIBRARY ) 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 • Xây dựng thư viện liên kết động Đại Học Sư Phạm Tp. Hồ Chí Minh Khoa Toán – Tin Học LẬP TRÌNH WINDOWSLẬP TRÌNH WINDOWS ếế Thư viện liên k ế t độngThư viện liên k ế t động ( DLL ( DLL –– DYNAMIC LINK LIBRARY ) 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 • Xây dựng thư viện liên kết động SS GIỚI THIỆU – LIÊN KẾT LÀ GÌ ? NDOW S NDOW S DLLDLL CT Kế toánCT Kế toán CT Nhân sựCT Nhân sự CT Tiền lươngCT Tiền lương R ÌNH WI R ÌNH WI Đ ỘNG Đ ỘNG N LẬP T RN LẬP T R KẾT Đ KẾT Đ SourceSource SourceSource SourceSource codecode Ọ C PHẦ NỌ C PHẦ N N LIÊN N LIÊN codecode codecode codecode I ẢNG H ỌI ẢNG H Ọ Ư VIỆ NƯ VIỆ N KT.EXEKT.EXE NS.EXENS.EXE TL.EXETL.EXE BÀI G I BÀI G I TH Ư TH Ư CSDLCSDL CSDLCSDL CSDLCSDL TRẦN NGỌC BẢO TRẦN NGỌC BẢO  KHOA TOÁN KHOA TOÁN TIN HỌC TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM ĐẠI HỌC SƯ PHẠM TP.HCM  ((33))TRẦN NGỌC BẢO TRẦN NGỌC BẢO  KHOA TOÁN KHOA TOÁN TIN HỌC TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM ĐẠI HỌC SƯ PHẠM TP.HCM  ((33)) CSDLCSDL CSDLCSDL CSDLCSDL SS GIỚI THIỆU – LIÊN KẾT LÀ GÌ ? NDOW S NDOW S DLLDLL CT Kế CT Kế tátá CT Nhân CT Nhân CT Tiền CT Tiền lươnglương R ÌNH WI R ÌNH WI Đ ỘNG Đ ỘNG t o á n t o á n s ự s ự lươnglương N LẬP T RN LẬP T R KẾT Đ KẾT Đ SourceSource SourceSource SourceSource codecode Ọ C PHẦ NỌ C PHẦ N N LIÊN N LIÊN codecode codecode codecode I ẢNG H ỌI ẢNG H Ọ Ư VIỆ NƯ VIỆ N KT.EXEKT.EXE NS.EXENS.EXE TL.EXETL.EXE BÀI G I BÀI G I TH Ư TH Ư TRẦN NGỌC BẢO TRẦN NGỌC BẢO  KHOA TOÁN KHOA TOÁN TIN HỌC TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM ĐẠI HỌC SƯ PHẠM TP.HCM  ((44))TRẦN NGỌC BẢO TRẦN NGỌC BẢO  KHOA TOÁN KHOA TOÁN TIN HỌC TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM ĐẠI HỌC SƯ PHẠM TP.HCM  ((44)) CSDLCSDL SS GIỚI THIỆU – LIÊN KẾT LÀ GÌ ? NDOW S NDOW S DLLDLL ModuleModule Kế toánKế toán ModuleModule TiềnlươngTiềnlương R ÌNH WI R ÌNH WI Đ ỘNG Đ ỘNG Kế toánKế toán Tiền lươngTiền lương N LẬP T RN LẬP T R KẾT Đ KẾT Đ Ọ C PHẦ NỌ C PHẦ N N LIÊN N LIÊN KT.DLLKT.DLL DataAccess.DLLDataAccess.DLL TL.DLLTL.DLL I ẢNG H ỌI ẢNG H Ọ Ư VIỆ NƯ VIỆ N BÀI G I BÀI G I TH Ư TH Ư CSDLCSDL TRẦN NGỌC BẢO TRẦN NGỌC BẢO  KHOA TOÁN KHOA TOÁN TIN HỌC TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM ĐẠI HỌC SƯ PHẠM TP.HCM  ((55))TRẦN NGỌC BẢO TRẦN NGỌC BẢO  KHOA TOÁN KHOA TOÁN TIN HỌC TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM ĐẠI HỌC SƯ PHẠM TP.HCM  ((55)) CSDLCSDL SS GIỚI THIỆU – LIÊN KẾT LÀ GÌ ? NDOW S NDOW S DLLDLL  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 Cá tài ê à th ờ hhéhiề ứ R ÌNH WI R ÌNH WI Đ ỘNG Đ ỘNG d ụng. Cá c tài nguy ê n n à y th ư ờ ng c h o p hé p n hiề u ứ 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 T RN LẬP T R KẾT Đ KẾT Đ 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 PHẦ NỌ C PHẦ N N LIÊN N LIÊN c á c đoạn mã thực thi c ủ a những module thư vi ệ n ( Lib ) v à o chương trình I ẢNG H ỌI ẢNG H Ọ Ư VIỆ NƯ VIỆ N  Có 2 cách liên kết:  Liên kếttĩnh BÀI G I BÀI G I TH Ư TH Ư  Liên kết tĩnh Liên kết động TRẦN NGỌC BẢO TRẦN NGỌC BẢO  KHOA TOÁN KHOA TOÁN TIN HỌC TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM ĐẠI HỌC SƯ PHẠM TP.HCM  ((66))TRẦN NGỌC BẢO TRẦN NGỌC BẢO  KHOA TOÁN KHOA TOÁN TIN HỌC TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM ĐẠI HỌC SƯ PHẠM TP.HCM  ((66)) Đại Học Sư Phạm Tp. Hồ Chí Minh Khoa Toán – Tin Học LẬP TRÌNH WINDOWSLẬP TRÌNH WINDOWS ếế Thư viện liên k ế t độngThư viện liên k ế t động ( DLL ( DLL –– DYNAMIC LINK LIBRARY ) 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 • Xây dựng thư viện liên kết động SS GIỚI THIỆU – CÁC LOẠI THƯ VIỆN NDOW S NDOW S DLLDLL  Thư viện liên kết tĩnh (Static Linking Library) R ÌNH WI R ÌNH WI Đ ỘNG Đ ỘNG -Dạng file: .LIB Chứ ãlệ hhị hâ ủ áhà th iệ N LẬP T RN LẬP T R KẾT Đ KẾT Đ - Chứ a m ã lệ n h n hị p hâ n c ủ a c á c hà m th ư v iệ n -Dùn g đ ể nhún g vào file chươn g trình khi thực hiện g iai đoạn Ọ C PHẦ NỌ C PHẦ N N LIÊN N LIÊN g g g g liên kết (linking) của quá trình biên dịch - Trình biên dịch sẽ copy đoạnmãlệnh của các hàm thư viện I ẢNG H ỌI ẢNG H Ọ Ư VIỆ NƯ VIỆ N - Trình biên dịch sẽ copy đoạn mã lệnh của các hàm thư viện vào trong những module gọi chúng BÀI G I BÀI G I TH Ư TH Ư TRẦN NGỌC BẢO TRẦN NGỌC BẢO  KHOA TOÁN KHOA TOÁN TIN HỌC TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM ĐẠI HỌC SƯ PHẠM TP.HCM  ((88))TRẦN NGỌC BẢO TRẦN NGỌC BẢO  KHOA TOÁN KHOA TOÁN TIN HỌC TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM ĐẠI HỌC SƯ PHẠM TP.HCM  ((88)) SS THƯ VIỆN LIÊN KẾT TĨNH NDOW S NDOW S DLLDLL Thư viện liên kết Chương trình chính R ÌNH WI R ÌNH WI Đ ỘNG Đ ỘNG Source codeSource code Source codeSource code N LẬP T RN LẬP T R KẾT Đ KẾT Đ Ọ C PHẦ NỌ C PHẦ N N LIÊN N LIÊN CompilerCompiler CompilerCompiler I ẢNG H ỌI ẢNG H Ọ Ư VIỆ NƯ VIỆ N LIBLIB OBJ filesOBJ files LinkerLinker BÀI G I BÀI G I TH Ư TH Ư AB.EXEAB.EXE TRẦN NGỌC BẢO TRẦN NGỌC BẢO  KHOA TOÁN KHOA TOÁN TIN HỌC TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM ĐẠI HỌC SƯ PHẠM TP.HCM  ((99))TRẦN NGỌC BẢO TRẦN NGỌC BẢO  KHOA TOÁN KHOA TOÁN TIN HỌC TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM ĐẠI HỌC SƯ PHẠM TP.HCM  ((99)) SS THƯ VIỆN LIÊN KẾT TĨNH NDOW S NDOW S DLLDLL  Ưu điểm D ễ thựchiện R ÌNH WI R ÌNH WI Đ ỘNG Đ ỘNG - 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 T RN LẬP T R KẾT Đ KẾT Đ -Chương trình chạy nhanh hơn vì không cần thực hiện load thư viện  Khu y ết đi ể m Ọ C PHẦ NỌ C PHẦ N N LIÊN N LIÊN y - Đ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ốnbộ nhớ. I ẢNG H ỌI ẢNG H Ọ Ư VIỆ NƯ VIỆ N 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ôn g tối ưu BÀI G I BÀI G I TH Ư TH Ư g -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 TRẦN NGỌC BẢO  KHOA TOÁN KHOA TOÁN TIN HỌC TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM ĐẠI HỌC SƯ PHẠM TP.HCM  ((1010))TRẦN NGỌC BẢO TRẦN NGỌC BẢO  KHOA TOÁN KHOA TOÁN TIN HỌC TIN HỌC  ĐẠI HỌC SƯ PHẠM TP.HCM ĐẠI HỌC SƯ PHẠM TP.HCM  ((1010)) [...]... 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ỆN LIÊN KẾT ĐỘNG - DLL Ư N Đ BÀI GI IẢNG HỌ PHẦN LẬP TR ỌC N RÌNH WINDOWS S XÂY DỰ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 KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (15) 15) THƯ VIỆN LIÊN KẾT ĐỘNG - DLL Ư N Đ BÀI GI IẢNG HỌ PHẦN LẬP TR... 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 TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (11) 11) THƯ VIỆN LIÊN KẾT ĐỘNG - DLL Ư N Đ BÀI GI IẢNG HỌ PHẦN LẬP TR ỌC N RÌNH WINDOWS S THƯ VIỆN LIÊN KẾT ĐỘNG Chương trình chính Thư viện liên kết Source code S (Source...THƯ VIỆN LIÊN KẾT ĐỘNG - DLL Ư N Đ BÀI GI IẢNG HỌ PHẦN LẬP TR ỌC N RÌNH WINDOWS S THƯ VIỆN LIÊN KẾT ĐỘNG Thư viện liên kết động (Dynamic Linking Library) - Dạng file: LIB và DLL - File LIB 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... KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (12) 12) THƯ VIỆN LIÊN KẾT ĐỘNG - DLL Ư N Đ BÀI GI IẢNG HỌ PHẦN LẬP TR ỌC N RÌNH WINDOWS S THƯ VIỆN LIÊN KẾT ĐỘNG Ưu điểm - 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 ệ g ợ g g g 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ớ - Nhiều... Extension DLL” Nhấ “Finish” để kết thúc ấn ể ế ú TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (26) 26) THƯ VIỆN LIÊN KẾT ĐỘNG - DLL Ư N Đ BÀI GI IẢNG HỌ PHẦN LẬP TR ỌC N RÌNH WINDOWS S CÁC DẠNG THƯ VIỆN DLL CỦA MFC TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (27) 27) THƯ VIỆN LIÊN KẾT ĐỘNG - DLL Ư N Đ BÀI GI IẢNG HỌ PHẦN LẬP TR ỌC N RÌNH WINDOWS S CÁC DẠNG THƯ VIỆN DLL CỦA MFC Regular... thứ tự các thư mục sau - Thư mục chứa tập tin EXE gọ DLL này ụ ập gọi y - Thư mục hiện hành - Thư mục system, system32 h 32 - Thư mục Windows - Các thư mục được liệt kê trong biến môi trường PATH TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (30) 30) THƯ VIỆN LIÊN KẾT ĐỘNG - DLL Ư N Đ BÀI GI IẢNG HỌ PHẦN LẬP TR ỌC N RÌNH WINDOWS S CÁCH THỨC GỌI DLL TRONG ỨNG DỤNG – Load-time Ứng dụng sẽ gọi... hàm của thư viện liên kết tĩnh) Ứng dụng cần phải liên kết với file thư viện nhập (Import Lib) của DLL Ứng dụng sẽ nạp DLL ngay thời điểm đầu tiên chương trình chạ Ưu điểm: - Đơn giản, dễ sử dụng vì giống như cách dùng thư viện tĩnh Khuyết điểm: - Nếu không tìm ra DLL lúc nạp, ứng dụng sẽ kết thúc ngay TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (31) 31) THƯ VIỆN LIÊN KẾT ĐỘNG - DLL Ư N... BÀI GI IẢNG HỌ PHẦN LẬP TR ỌC N RÌNH WINDOWS S CÁCH THỨC GỌI DLL TRONG ỨNG DỤNG – Load-time Cách thực hiện - Add file thư viện nhập (DLLName.Lib) vào project - Khai báo các hàm, biến IMPORT từ DLL - Gọi hàm của thư viện DLL như gọi hàm bình thư ng TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (32) 32) THƯ VIỆN LIÊN KẾT ĐỘNG - DLL Ư N Đ BÀI GI IẢNG HỌ PHẦN LẬP TR ỌC N RÌNH WINDOWS S CÁCH THỨC... RÌNH WINDOWS S XÂY DỰNG DLL Xây dựng thư viện DLL bằng thư viện MFC Chọn loại Project: “MFC AppWizard(Dll) MFC AppWizard(Dll)” TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (16) 16) THƯ VIỆN LIÊN KẾT ĐỘNG - DLL Ư N Đ BÀI GI IẢNG HỌ PHẦN LẬP TR ỌC N RÌNH WINDOWS S XÂY DỰNG DLL DÙNG THƯ VIỆN WIN32 API Tạo lập DLL ạ ập Phâ tích các khai báo ân í h á kh bá Phân tích hàm DllMain Demo liên kết DLL... TRẦN NGỌC BẢO KHOA TOÁN -TIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (22) 22) THƯ VIỆN LIÊN KẾT ĐỘNG - DLL Ư N Đ BÀI GI IẢNG HỌ PHẦN LẬP TR ỌC N RÌNH WINDOWS S XÂY DỰNG DLL DÙNG THƯ VIỆN WIN32 API Phân tích hàm DllMain (tt) DLL_THREAD_ATTACH: DLL THREAD ATTACH: • Khi tiến trình tạo mới một tiểu trình (Thread), Windows gọi hàm DllMain của tất cả các thư viện DLL đang được sử dụng với tiến trình đó • Đây là thời điểm . 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 • Xây dựng thư viện liên kết động SS GIỚI THIỆU. 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 • Xây dựng thư viện liên kết động SS XÂY DỰNG

Ngày đăng: 15/03/2014, 21:20

Tài liệu cùng người dùng

Tài liệu liên quan