Bài giảng "Lập trình Windows - Chương 9: Lập trình thư viện động" cung cấp cho người học các kiến thức: Giới thiệu thư viện động - DLL; giao diện thư viện DLL, các bước lập trình DLL, sử dụng DLL trong chương trình. nội dung chi tiết. | Chương 9 Lập trình thư viện động 1 . Giới thiệu thư viện động - DLL Thư viện là một tập các đại lượng, các hàm cung cấp cho việc thực hiện các công việc cho các chương trình ứng dụng. Thư viện tĩnh (static library) được lập trình, dịch và liên kết với chương trình sử dụng nó. Dẫn đến các chương trình rất lớn khi lưu trữ, chiếm tài nguyên nhiều khi chạy,. Thư viện động (DLL) cho phép phép một chương trình sử dụng được lưu trữ độc lập với nó, chỉ khi chạy cần đến mới nạp vào máy. Nhằm mục đích giảm tải cho hệ thống khi chạy các ứng dụng. Minh họa thư viện động: Chương compile trình ứng dụng Chạy chương trình ứng dụng EXE EXE Thư viện compile động DLL DLL 2 . Giới thiệu thư viện động – DLL. Thư viện động có 2 cơ chế làm việc: kiểu loadtime thư viện sẽ được nạp vào máy cùng với chương trình khi chạy, kiểu runtime thư viện được nạp vào máy mỗi khi chương trình cần, dùng xong sẽ giải phóng nó khỏi máy. Minh họa như sau: Chương trình DLL-1 DLL-2 DLL-1 DLL-3 RunTime DLL-1 Chương trình DLL-1 DLL-2 DLL-2 DLL-1 DLL-3 DLL-3 LoadTime DLL-1, DLL-2, DLL-3, Chương trình 3 . Giao diện thư viện DLL Giao diện thư viện (interface) là các kiểu, đại lượng, hàm cung cấp cho chương trình ứng dụng, nó là cầu nối giữa ứng dụng với bên trong thư viện. Minh họa như sau: DLL interface using using Chương trình ứng dụng using Chương trình không sử dụng được các thành phần này vì không có trên giao diện, mặc dù có trong thư viện. 4 . Các kiểu thư viện DLL Có hai kiểu thư viện động có thể tạo trong lập trình MFC - DLL mở rộng MFC và - DLL thông thường. Đối với thư viện DLL mở rộng MFC thì các giao diện có thể chứa các thành phần trong C++ và MFC và tất nhiên có thể sử dụng C++ và MFC để lập trình tạo ra DLL. Chương trình liên kết tương ứng phải có cùng phiên bản với thư viện MFC của DLL. Thư viện DLL thông thường được lập trình các thành phần từ đầu, tuy nhiên có thể dùng các thành phần cơ bản của ngôn ngữ và hệ thông như API, .