Bài giảng Thư viện liên kết động (DLL – dynamic link library ) - pdf 16

Download miễn phí Bài giảng Thư viện liên kết động (DLL – dynamic link library )



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 đểkhởi tạo các biến dùng cho tiểu trình
• Lưu ý rằng tình huống này chỉxảy ra khi tiểu trình được tạo sau khi thưviện
DLL đã loadvào tiến trình, nghĩa là nếu DLL được load bằng hàn LoadLibrarythì
tất cảcác tiểu trình hiện có (trong tiến trình) sẽkhông gọi hàm DllMain với tham
sốnày.
ƒ DLL_THREAD_DETACH:
• Khi 1 tiểu trình kết thúc, 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ểu trình này.
• Đây là thời điểm đểgiải phóng các biến dùng cho tiểu trình
 



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:


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
P
H

N

C
P
H

N
N
L
I
Ê
N
N
L
I
Ê
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

N
G
H

I

N
G
H

Ư
V
I

N
Ư
V
I

N ™ Có 2 cách liên kết:
™Liên kết tĩnh
B
À
I
G
I
B
À
I
G
I
T
H
Ư
T
H
Ư
™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
S S
GIỚI THIỆU – CÁC LOẠI THƯ VIỆN
N
D
O
W
S
N
D
O
W
S
- -
D
L
L
D
L
L
™ Thư viện liên kết tĩnh (Static Linking Library)
R
Ì
N
H
W
I
R
Ì
N
H
W
I
Đ

N
G
Đ

N
G
- Dạng file: .LIB
Chứ ã lệ h hị hâ ủ á hà th iệ
N
L

P
T
R
N
L

P
T
R
K

T
Đ
K

T
Đ - a m n n p n c a c c m ư v n
- Dùng để nhúng vào file chương trình khi thực hiện giai đoạn

C
P
H

N

C
P
H

N
N
L
I
Ê
N
N
L
I
Ê
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
I

N
G
H

I

N
G
H

Ư
V
I

N
Ư
V
I

N
vào trong những module gọi chúng
B
À
I
G
I
B
À
I
G
I
T
H
Ư
T
H
Ư
TRẦN NGỌC BẢO ” KHOA TOÁN -TIN HỌC ” ĐẠI HỌC SƯ PHẠM TP.HCM ” (8)
S S
THƯ VIỆN LIÊN KẾT TĨNH
N
D
O
W
S
N
D
O
W
S
- -
D
L
L
D
L
L Thư viện liên kết Chương trình chính
R
Ì
N
H
W
I
R
Ì
N
H
W
I
Đ

N
G
Đ

N
G
Source code Source code
N
L

P
T
R
N
L

P
T
R
K

T
Đ
K

T
Đ

C
P
H

N

C
P
H

N
N
L
I
Ê
N
N
L
I
Ê
N
Compiler Compiler
I

N
G
H

I

N
G
H

Ư
V
I

N
Ư
V
I

N
LIB OBJ files
Linker
B
À
I
G
I
B
À
I
G
I
T
H
Ư
T
H
Ư
AB.EXE
TRẦN NGỌC BẢO ” KHOA TOÁN -TIN HỌC ” ĐẠI HỌC SƯ PHẠM TP.HCM ” (9)
S S
THƯ VIỆN LIÊN KẾT TĨNH
N
D
O
W
S
N
D
O
W
S
- -
D
L
L
D
L
L ™ Ưu điểm
Dễ thực hiện
R
Ì
N
H
W
I
R
Ì
N
H
W
I
Đ

N
G
Đ

N
G
-
- 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
R
N
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
™ Khuyết điểm

C
P
H

N

C
P
H

N
N
L
I
Ê
N
N
L
I
Ê
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ớ.
I

N
G
H

I

N
G
H

Ư
V
I

N
Ư
V
I

N
- Đ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
B
À
I
G
I
B
À
I
G
I
T
H
Ư
T
H
Ư
- 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)
S S
THƯ VIỆN LIÊN KẾT ĐỘNG
N
D
O
W
S
N
D
O
W
S
- -
D
L
L
D
L
L
™ Thư viện liên kết động (Dynamic Linking Library)
R
Ì
N
H
W
I
R
Ì
N
H
W
I
Đ

N
G
Đ

N
G
- Dạng file: .LIB và DLL
- File LIB
N
L

P
T
R
N
L

P
T
R
K

T
Đ
K

T
Đ
.
ƒ Thư viện nhập (Import Library)
ƒ Không chứa mã lệnh của các hàm
ầ ế ể ề

C
P
H

N

C
P
H

N
N
L
I
Ê
N
N
L
I
Ê
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
I

N
G
H

I

N
G
H

Ư
V
I

N
Ư
V
I

N
- File .DLL
ƒ Chứa mã lệnh nhị phân của các hàm thư viện
B
À
I
G
I
B
À
I
G
I
T
H
Ư
T
H
Ư ƒ Được tải vào bộ nhớ khi ứng dụng gọi hàm thư viện
ƒ cần 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)
S S
THƯ VIỆN LIÊN KẾT ĐỘNG
N
D
O
W
S
N
D
O
W
S
- -
D
L
L
D
L
L
S
Thư viện liên kết Chương trình chính
R
Ì
N
H
W
I
R
Ì
N
H
W
I
Đ

N
G
Đ

N
G
ource code
(Source file) Source code
N
L

P
T
R
N
L

P
T
R
K

T
Đ
K

T
Đ
Source code

C
P
H

N

C
P
H

N
N
L
I
Ê
N
N
L
I
Ê
N
Compiler Compiler(Header files)
I

N
G
H

I

N
G
H

Ư
V
I

N
Ư
V
I

N
DLL OBJ files
Linker
B
À
I
G
I
B
À
I
G
I
T
H
Ư
T
H
Ư
AB.EXE
TRẦN NGỌC BẢO ” KHOA TOÁN -TIN HỌC ” ĐẠI HỌC SƯ PHẠM TP.HCM ” (12)
S S
THƯ VIỆN LIÊN KẾT ĐỘNG
N
D
O
W
S
N
D
O
W
S
- -
D
L
L
D
L
L ™ Ư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
R
Ì
N
H
W
I
R
Ì
N
H
W
I
Đ

N
G
Đ

N
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
T
R
N
L

P
T
R
K

T
Đ
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
P
H

N

C
P
H

N
N
L
I
Ê
N
N
L
I
Ê
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
I

N
G
H

I

N
G
H

Ư
V
I

N
Ư
V
I

N
™ Khuyết điểm
B
À
I
G
I
B
À
I
G
I
T
H
Ư
T
H
Ư
- 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)
Đạ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
S S
XÂY DỰNG DLL
N
D
O
W
S
N
D
O
W
S
- -
D
L
L
D
L
L
™ Xây dựng thư viện DLL bằng thư viện Win32API
R
Ì
N
H
W
I
R
Ì
N
H
W
I
Đ

N
G
Đ

N
G
N
L

P
T
R
N
L

P
T
R
K

T
Đ
K

T
Đ

C
P
H

N

C
P
H

N
N
L
I
Ê
N
N
L
I
Ê
N
I

N
G
H

I

N
G
H

Ư
V
I

N
Ư
V
I

N
B
À
I
G
I
B
À
I
G
I
T
H
Ư
T
H
Ư 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)
S S
XÂY DỰNG DLL
N
D
O
W
S
N
D
O
W
S
- -
D
L
L
D
L
L
™ Xây dựng thư viện DLL bằng thư viện MFC
R
Ì
N
H
W
I
R
Ì
N
H
W
I
Đ

N
G
Đ

N
G
N
L

P
T
R
N
L

P
T
R
K

T
Đ
K

T
Đ

C
P
H

N

C
P
H

N
N
L
I
Ê
N
N
L
I
Ê
N
I

N
G
H

I

N
G
H

Ư
V
I

N
Ư
V
I

N
B
À
I
G
I
B
À
I
G
I
T
H
Ư
T
H
Ư
Chọn loại Project:
“MFC AppWizard(Dll)”
TRẦN NGỌC BẢO ” KHOA TOÁN -TIN HỌC ” ĐẠI HỌC SƯ PHẠM TP.HCM ” (16)
S S
XÂY DỰNG DLL DÙNG THƯ VIỆN WIN32 API
N
D
O
W
S
N
D
O
W
S
- -
D
L
L
D
L
L
™ Tạo lập DLL
R
Ì
N
H
W
I
R
Ì
N
H
W
I
Đ

N
G
Đ

N
G
â í h á kh bá
N
L

P
T
R
N
L

P
T
R
K

T
Đ
K

T
Đ ™ Ph n t c c c ai o

C
P
H

N

C
P
H

N
N
L
I
Ê
N
N
L
I
Ê
N
™ Phân tích hàm DllMain
I

N
G
H

I

N
G
H

Ư
V
I

N
Ư
V
I

N
™ Demo liên kết DLL với ứng dụng
B
À
I
G
I
B
À
I
G
I
T
H
Ư
T
H
Ư
TRẦN NGỌC BẢO ” KHOA TOÁN -TIN HỌC ” ĐẠI HỌC SƯ PHẠM TP.HCM ” (17)
S S
XÂY DỰNG DLL DÙNG THƯ VIỆN WIN32 API
N
D
...
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status