H NG D N T O DLL VÀ DÙNG DLL TRONG VBƯỚ
Tác gi : Peter
C p đ bài vi t: ế Ch a đánh giáư
Tóm t t: H ng d n t o Dll và dùng Dll trong VB!ướ
Hôm nay Peter s h ng d n các b n t o m t dll và s d ng chúng trong VB. Bài vi t này ướ ế
Peter g i cho 2 di n đàn khác (là 2 di n đàn mà Peter đi u hành), do v y các anh em chú ý.
D n nh p:
Th t ra t tr c t i gi Peter th y các b n ch ch t là dùng các hàm API c a Windows ướ
ch a ưth ngườ dùng đ n các dll t t o; v y bài vi t này Peter s h ng d n các b n t o m tế ế ướ
dll và dùng nó đ vi t ng d ng trong VB; v i VB thì Peter s trình bày cách t o dll class xây ế
d ng trên chính môi tr ng VB; và m t ph n khác Peter s xây d ng dll Windows b ng VC+ ườ
+ (Cái này thì Peter cũng l u ý các b n r ng: Các b n ph i có m t chút ki n th c v l p trìnhư ế
C/C++; n u có th các b n hãy qua [url]congdongcviet.com[/url] (Peter cũng đang di u hànhế
box C/C++ bên đó) đ tìm hi u v ngôn ng này). Sau đây m i các b n theo dõi n i dung
chính: (Chúng ta s xây d ng m t ch ng trình tính t ng 2 s Double) ươ
Ph n 1: Vi t dll Class và ng d ng ế
1. Vi t dll Class:ế
Dll Class là m t lo i dll đ c xây d ng b ng chính môi tr ng VB, đây Peter dùng VB6.0 ượ ườ
đ làm vi c này. Các b c xây d ng nh sau: ướ ư
- B c 1: Kh i đ ng VB6.0 và ch n ActiveX Dll trên tab New c a h p tho i New Project.ướ
- B c 2: Đ t thu c tính Name cho Class này là ClsTong. Thu c tính Instancing là 6-ướ
GlobalMultiUser.
- B c 3: Cho đo n code sau vào c a s code:ướ
Public Function Tong(a As Double, b As Double) As Double
On Error Resume Next
Tong = a + b
End Function
- B c 4: Ch n menu File\Make Project1.dll và biên d ch. Đ t tên dll này là Tong.dllướ
Nh v y là chúng ta đã thành công trong vi c biên d ch t o m t dll class b ng VB6.0.ư
2. ng d ng:
Sau khi t o đ c dll Class Tong.dll chúng ta làm trình t các b c sau: ượ ướ
- B c 1: T o m t Project m i, l n này chúng ta ch n Standard EXE. Và đ t Name choướ
Project là TestDll.
- B c 2: T o 3 TextBox là Text1, Text2, Text3 (Trong đó Text3 dùng đ l u k t qu tínhướ ư ế
t ng c a Text1 và Text2). Thêm m t CommandButton có Name là Command1.
- B c 3: Nh n ch n menu Project\References... và nh n ch n Browse; ch n đ ng d n đ nướ ườ ế
1
Dll chúng ta biên d ch phía trên và nh n OK đ k t thúc quá trình ch n. ế
- B c 4: Đ t đo n code sau vào c a s code:ướ
Private Sub Command1_Click()
Dim x As New ClsTong
Text3 = x.Tong(Text1, Text2)
End Sub
Sau đó nh n F5 đ th c thi ch ng trình. Chúng ta nh p vào 2 ô Text1 và Text2 nh ng con s ươ
và nh n button Command1. K t qu là T ng c a 2 ô đó đ c hi n trong Ô Text3.... Các b n ế ượ
có hài lòng không?
Ph n 2: Vi t dll Windows và ng d ng ế
1. Vi t dll Windowsế
Ph n này Peter s h ng d n các b n t o m t dll WIndows b ng VC++6.0; các thao tác làm ướ
nh sau:ư
- B c 1: Kh i đ ng VC++6.0; nh n Ctrl+N ho c vô menu File\New; ch n tab Projects trongướ
h p tho i New; ch n ti p Win32 Dynamic-Link Library trong danh sách c a tab, Ti p t c là ế ế
đ t tên cho Project t i TextBox Project name ( đây Peter đ t là DllWin). Nh n OK đ ti p ế
t c.
- B c 2: Ch n A simple dll project (l a ch n th 2 trong 3 l a ch n xu t hi n). Nh n Finishướ
và ch n ti p OK. ế
- B c 3: Trên tab FileView kích đúp vào file DllWin.cpp; xoá b code có s n là:ướ
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
và thay b ng đo n code sau:
double _stdcall Tong(double x,double y)
{
return x+y;
}
- B c 4: Dùng NotePad đ so n m t t p tin DllWin.def (cùng tên v i Project), v i n i dungướ
sau:
EXPORTS
Tong;
Chú ý vi t đúng nh trên (phân bi t ch hoa và ch th ng), tên hàm Tong ph i trùng v i tênế ư ườ
hàm c a code trên. Sau đó đ t file này chung th m c v i d án DllWin.dsw. ư
- B c 5: Tr l i VC++ chúng ta ch n menu Project\Add to project\Files và ch n fileướ
DllWin.def đ add file này vào d án. Nh n OK.
2
- B c 6: Biên d ch dll b ng cách nh n F7. M t file dll có tên là DllWin.dll s xu t hi n trongướ
th m c Debug. Hãy copy file này vào C:\Windows\System32.ư
V y là chúng ta đã biên d ch và t o thành công file DllWin.dll đ ph c v cho ch ng trình ươ
VB c a chúng ta.
2. ng d ng
Kh i đ ng VB6.0 và làm theo các b c t 1 đ n 2 c a bài h ng d n tr c. ướ ế ướ ướ
- B c 3: Đ t đo n code sau vào c a s code:ướ
Private Declare Function Tong Lib "DllWin.dll" (ByVal x As Double,
ByVal y As Double) As Double
Private Sub Command1_Click()
Text3 = Tong(Text1, Text2)
End Sub
- B c 4: Nh n F5 đ th c thi; nh p s vào các Text1, Text2 và nhân Command1; so sánh k tướ ế
qu c a bài h ng d n tr c! ướ ướ
Chúc các b n thành công!
3