• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Tạo một Standard DLL dùng VB6

Các bài viết hướng dẫn, giúp các bạn hiểu và tiếp cận với Visual Basic nhanh hơn
Hình đại diện của người dùng
thuongbat
Guru
Guru
Bài viết: 346
Ngày tham gia: CN 27/04/2008 10:11 am
Has thanked: 4 time
Been thanked: 79 time

Tạo một Standard DLL dùng VB6

Gửi bàigửi bởi thuongbat » T.Sáu 03/09/2010 12:43 am

Tên bài viết: Tạo một Standard DLL dùng VB6
Tác giả: Sưu tầm
Cấp độ bài viết: Chưa đánh giá
Tóm tắt: Tạo một Standard DLL dùng VB6 - Dành cho các Fan của VB



Bác Peterdrew đã có bài viết về Cách tạo và sử dụng DLL trong VB rồi, nhưng bác ấy chỉ tạo được DLL dạng ActiveX (DLL có chứa các Class ở trong nó) bằng Vb6. Còn Standard DLL (DLL kiểu của windows, các hàm trong nó được khai báo bằng từ khoá Declare trong Vb6) thì bác ấy lại tạo bằng VC++. Nhưng khổ nỗi là em lại không rành VC++, em là tín đồ của VB mà. Vậy nếu muốn tạo Standard DLL kiểu như bác Peter tạo trong VC++ thì phải làm thế nào.

Sau đây là cách tạo Standard DLL trong VB6 em sưu tầm được, xin đưa lên đây để bác nào không rành VC++ mà vẫn muốn tạo Standard DLL (giống em) có thể tham khảo

1. Một số khái niệm:
    +DllMain: Là hàm khởi tạo (và cũng là hàm huỷ) trong DLL. Windows sẽ gọi hàm DllMain trong DLL mỗi khi DLL được sử dụng đến hoặc ngưng sử dụng. Vì vậy hàm DLLMain sẽ được sử dụng để khởi tạo và huỷ các biến cần thiết. DllMain có thể có hoặc không cũng được (tuỳ vào DLL mà bạn viết có cần khởi tạo và dọn dẹp hay không)
    +Module Definition File: Là tệp tin mô tả các module ở trong file DLL. File DLL kiểu Standard khi viết ra có thể có nhiều hàm ở trong. Tệp mô tả sẽ chỉ ra thứ tự các hàm, nó tham gia vào quá trình biên dịch mã nguồn thành tệp DLL. Tệp mô tả có phần mở rộng là DEF
2. Mod lại file Link.exe:
    A. File Link.exe đóng vai trò gì?
    + Trong IDE của Vb6, khi ta chọn Make chương trình của ta thành file DLL (kể cả khi ta make chương trình thành file EXE) thì IDE sẽ trước tiên gọi file C2.exe để dịch code của chúng ta thành các file *.OBJ. Sau đó nó gọi tiếp file Link.exe để liên kết các file *.OBJ lại tạo ra file DLL hoặc file EXE. Vậy file Link.exe đóng vai trò liên kết các file OBJ để tạo ra tệp dạng binary (Exe hoặc DLL) cuối cùng. Cả file C2.Exe và file Link.exe đều nằm trong C:\Program Files\Microsoft Visual Studio\VB98
    B. Vì sao phải Mod lại file Link.exe?
    + Trong VB6, khi IDE gọi file Link.exe để liên kết các file *.OBJ lại, nó truyền cho file Link.exe một loạt các tham số như: đường dẫn của các file *.OBJ, kiểu file đích sẽ tạo ra (DLL hay EXE), đường dẫn của đích sẽ được tạo ra, và 1 số các tham số khác nữa. Tuy nhiên, trong rất nhiều tham số này, lại thiếu mất một tham số là "/DEF". Tham số /DEF chính là tham số chỉ ra đường dẫn của các tệp Module Definition (các tệp *.DEF) ở phần 1. Thiếu các tệp này, DLL tạo ra sẽ không thể sử dụng được các hàm Public bằng phương pháp Declare. Chính vì vậy, ta phải Mod lại file Link.exe để thêm tham số này vào lúc biên dịch
    C. Mod lại file Link.exe như thế nào?
    + Phương pháp ở đây là tạo ra 1 file Link.exe giả đặt trong thư mục VB98, còn file Link.exe thật thì đổi tên thành 1 file khác (ví dụ là LinkThat.exe). Khi IDE gọi file Link.exe giả (do ta mod lại) thì file giả của chúng ta sẽ làm nhiệm vụ đọc các tham số được IDE truyền sang, thêm tham số /DEF vào và gọi file LinkThat.exe với tham số mới (đã có /DEF). Tất nhiên là phải kiểm tra, nếu có tồn tại các file *.DEF và project cần tạo là project kiểu DLL thì mới thêm tham số
    + Tiến hành Mod lại file Link.exe
    - Mở Vb6, tạo 1 Project mới dạng EXE application
    - Xoá Form1 mà Vb đã tự tạo ra cho ta, thêm vào 1 Module mới, đặt tên bất kỳ
    - Add Reference vào tệp SCRRUN.DLL trong System32 để sử dụng được đối tượng FileSystemObject
    - Copy đoạn code sau, Paste vào Module vừa thêm:
    1. Option Explicit
    2.  
    3. Public Sub Main()
    4.  
    5.    Dim SpecialLink As Boolean, fCPL As Boolean, fResource As Boolean
    6.    Dim intPos As Integer
    7.    Dim strCmd As String
    8.    Dim strPath As String
    9.    Dim strFileContents As String
    10.    Dim strDefFile As String, strResFile As String
    11.    Dim oFS As New Scripting.FileSystemObject
    12.    Dim fld As Folder
    13.    Dim fil As File
    14.    Dim ts As TextStream, tsDef As TextStream
    15.  
    16.    strCmd = Command
    17.    'Ghi Log vào file lnklog.txt mỗi khi chạy
    18.   Set ts = oFS.CreateTextFile(App.Path & "\lnklog.txt")
    19.    
    20.    ts.WriteLine "Beginning execution at " & Date & " " & Time()
    21.    ts.WriteBlankLines 1
    22.    ts.WriteLine "Command line arguments to LINK call:"
    23.    ts.WriteBlankLines 1
    24.    ts.WriteLine "   " & strCmd
    25.    ts.WriteBlankLines 2
    26.    
    27.    ' Kiểm tra xem các tệp .DEF hoặc tệp RES có tồn tại trong thư mục làm việc hay không
    28.   '
    29.   'Lấy đường dẫn thư mục làm việc từ tệp .OBJ đầu tiên
    30.   intPos = InStr(1, strCmd, ".OBJ", vbTextCompare)
    31.    strPath = Mid(strCmd, 2, intPos + 2)
    32.    intPos = InStrRev(strPath, "\")
    33.    strPath = Left(strPath, intPos - 1)
    34.    'Mở thư mục làm việc
    35.   Set fld = oFS.GetFolder(strPath)
    36.    
    37.    'Lấy các file trong thư mục làm việc
    38.   For Each fil In fld.Files
    39.       If UCase(oFS.GetExtensionName(fil)) = "DEF" Then
    40.          strDefFile = fil
    41.          SpecialLink = True
    42.       End If
    43.       If UCase(oFS.GetExtensionName(fil)) = "RES" Then
    44.          strResFile = fil
    45.          fResource = True
    46.       End If
    47.       If SpecialLink And fResource Then Exit For
    48.    Next
    49.      
    50.    'Thay đổi tham số gọi tệp Link, nếu có tồn tại file .DEF hoặc RES
    51.   If SpecialLink Then
    52.       ' Phần này để kiểm tra xem có phải file .DEF định nghĩa tệp DLL tạo ra
    53.      ' sẽ trở thành Applet của Control Panel hay không. Phần này em chưa tạo
    54.      ' bao giờ nên cũng chưa rõ lắm <!-- s:D --><img src="{SMILIES_PATH}/004.gif" alt=":D" title="Cười nhăn răng" /><!-- s:D -->
    55.      Set tsDef = oFS.OpenTextFile(strDefFile)
    56.       strFileContents = tsDef.ReadAll
    57.       If InStr(1, strFileContents, "CplApplet", vbTextCompare) > 0 Then
    58.          fCPL = True
    59.       End If
    60.      
    61.       ' Thêm tham số /DEF cùng với đừơng dẫn file .DEF vào trước tham số /DLL
    62.      intPos = InStr(1, strCmd, "/DLL", vbTextCompare)
    63.       If intPos > 0 Then
    64.          strCmd = Left(strCmd, intPos - 1) & _
    65.                " /DEF:" & Chr(34) & strDefFile & Chr(34) & " " & _
    66.                Mid(strCmd, intPos)
    67.       End If
    68.       ' Thêm các tệp Resource vào nếu có
    69.      If fResource Then
    70.          intPos = InStr(1, strCmd, "/ENTRY", vbTextCompare)
    71.          strCmd = Left(strCmd, intPos - 1) & Chr(34) & strResFile & _
    72.                   Chr(34) & " " & Mid(strCmd, intPos)
    73.       End If
    74.      
    75.       ' Nếu tệp định tạo là Applet của Control Pannel, đổi tên file đích từ .DLL thành .CPL
    76.      If fCPL Then
    77.          strCmd = Replace(strCmd, ".dll", ".cpl", 1, , vbTextCompare)
    78.       End If
    79.      
    80.       ' Ghi Log các tham số sau khi sửa
    81.      ts.WriteLine "Command line arguments after modification:"
    82.       ts.WriteBlankLines 1
    83.       ts.WriteLine "   " & strCmd
    84.       ts.WriteBlankLines 2
    85.    End If
    86.    'Gọi tệp LinkThat.exe với tham số đã sửa
    87.   ts.WriteLine "Calling LINK.EXE linker"
    88.    Shell "linkthat.exe " & strCmd
    89.    If Err.Number <> 0 Then
    90.       ts.WriteLine "Error in calling linker..."
    91.       Err.Clear
    92.    End If
    93.    
    94.    ts.WriteBlankLines 1
    95.    ts.WriteLine "Returned from linker call"
    96.    ts.Close
    97. End Sub
    98.  


    - Dịch chương trình trên thành file Link.exe
    - Đổi tên file Link.exe của Vb6 (trong C:\Program Files\Microsoft Visual Studio\VB98) thành LinkThat.exe
    - Copy file Link.exe vừa tạo được ở trên vào thư mục Vb98
3. Cùng tạo DLL nào
    - Tạo 1 Project mới trong Vb6, kiểu Project là ActiveX DLL
    - Để nguyên Class1 mà Vb6 đã tạo sẵn cho bạn. Không cần Code gì vào đó cả, nhưng vẫn phải giữ nó lại vì Vb6 cần phải có 1 Class trong Project kiểu ActiveX DLL thì nó mới chạy
    - THêm 1 Module mới với tên tuỳ ý. Bạn có thể bắt đầu viết các hàm cho riêng mình vào Module này. Tôi đưa ra 1 ví dụ đơn giản với các hàm tính toán. Module của tôi có dạng như sau:
    Trừ hàm DllMain, các hàm khác các bạn có thể thêm bớt tuỳ ý
  1. Option Explicit
  2.  
  3. Public Const DLL_PROCESS_DETACH = 0
  4. Public Const DLL_PROCESS_ATTACH = 1
  5. Public Const DLL_THREAD_ATTACH = 2
  6. Public Const DLL_THREAD_DETACH = 3
  7.  
  8. Public Function DllMain(hInst As Long, fdwReason As Long, _
  9.     lpvReserved As Long) As Boolean
  10.    Select Case fdwReason
  11.       Case DLL_PROCESS_DETACH
  12.          ' No per-process cleanup needed
  13.      Case DLL_PROCESS_ATTACH
  14.          DllMain = True
  15.       Case DLL_THREAD_ATTACH
  16.          ' No per-thread initialization needed
  17.      Case DLL_THREAD_DETACH
  18.          ' No per-thread cleanup needed
  19.   End Select
  20. End Function
  21.  
  22. Public Function Add(ByVal a As Integer, ByVal b As Integer) As Integer
  23.     Add = a + b
  24. End Function
  25. Public Function Subtract(ByVal a As Integer, ByVal b As Integer) As Integer
  26.     SubTract = a - b
  27. End Function
  28. Public Function Square(ByVal a As Integer) As Integer
  29.     Square = a * a
  30. End Function
  31.  

4. Tạo tệp Module Definition File (.DEF)
- Dùng Notepad, soạn với nội dung sau:

Mã: Chọn hết

NAME TenTuyY
LIBRARY TenTuyY
DESCRIPTION "Mo ta cua tep DLL- gi cung duoc"
EXPORTS DllMain @1
        Add @2
        Subtract @3
        Square @4

    - Phần nội dung sau NAME, LIBRARY, DESCRIPTION bạn có thể đặt tuỳ ý
    - Theo sau EXPORTS là tên các hàm. Nhớ là tên hàm phân biệt hoa-thường nha
    - Con số sau ký tự @ là thứ tự của hàm mà bạn đã viết trong Module ở trên
    - Lưu tệp soạn thảo này vào thư mục chứa file Project DLL mà ta đã tạo ở bước 3 với tên trùng với tên DLL mà ta muốn tạo, phần mở rộng là .DEF. Ví dụ: nếu ta muốn tạo ra 1 dll có tên là MyLibrary.DLL thì file DEF này sẽ phải lưu với tên là MyLibrary.DEF
5. Dịch thành file DLL và sử dụng
- Bây giờ bạn có thể Make cái Project bạn đã tạo ở bước 3 được rồi. từ menu File, chọn Make như với các Project bình thường khác
- Sau khi được file DLL rồi thì chắc là các bạn đã biết cách sử dụng nó như thế nào:
    + Copy file DLL vào cùng thư mục với Project muốn sử dụng nó
    + Khai báo như sau để Import hàm của DLL vào Project
  1. Private Declare Function Add Lib "MyLibrary.dll" (ByVal a As Integer, ByVal b As Integer) As Integer


Rượu gặp tri kỷ ngàn chén thiếu.
Chuyện người không hợp nửa câu thừa.

hoangvn79
Bài viết: 4
Ngày tham gia: T.Bảy 16/08/2008 10:36 am

Re: Tạo một Standard DLL dùng VB6

Gửi bàigửi bởi hoangvn79 » T.Sáu 03/09/2010 11:24 am

Bài viết rất hay và chi tiết! cho mình hỏi thêm nếu chuyển Standard DLL sang máy khác có phải đăng ký không hay chỉ cần khai báo như trên là ok

Hình đại diện của người dùng
thuongbat
Guru
Guru
Bài viết: 346
Ngày tham gia: CN 27/04/2008 10:11 am
Has thanked: 4 time
Been thanked: 79 time

Re: Tạo một Standard DLL dùng VB6

Gửi bàigửi bởi thuongbat » T.Sáu 03/09/2010 3:16 pm

Mình cũng sử dụng nhiều DLL kiểu này rồi và chưa thấy phải đăng ký. Cứ copy là chạy thôi
Rượu gặp tri kỷ ngàn chén thiếu.
Chuyện người không hợp nửa câu thừa.

tindl88
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 363
Ngày tham gia: T.Bảy 26/04/2008 6:10 pm
Has thanked: 16 time
Been thanked: 10 time

Re: Tạo một Standard DLL dùng VB6

Gửi bàigửi bởi tindl88 » CN 05/09/2010 12:53 pm

Dùng dll này thì chắc chắc là không cần phải đăng ký.
Đây 1 bài nữa nè bạn, mình làm không chi tiết như bạn :)
http://www.forum.caulacbovb.com/viewtop ... =52&t=8803
cứng nhắc...vớ vẩn

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 509 time

Re: Tạo một Standard DLL dùng VB6

Gửi bàigửi bởi truongphu » T.Tư 08/09/2010 7:54 am

1- Tôi có xóa một số bài viết của các bạn do nội dung trao đổi không đúng tinh thần học hỏi và xây dựng. các bạn cần rút kinh nghiệm điều nầy.
2- Với tư cách người đi trước, chuyên viết các bài trong Box Tài nguyên, cũng như tư cách điều hành Box nầy hiện tại, tôi hoàn toàn ủng hộ các bạn tham gia viết nhiều đề tài hơn nữa; làm cho code của forum chúng ta phong phú. Đương nhiên bài viết sẽ đi từ chất lượng tốt lên tốt hơn, điều nầy là rõ ràng. Một vấn đề nêu ra có thể đơn giản với bạn nầy, nhưng sẽ là ích lợi cho đa số bạn khác. Tôi luôn luôn quan niệm như thế.
3- các bạn peterdrew, tuyen_dt18, tindl88, thuongbat... (và nhiều bạn khác) gần đây tích cực tham gia viết bài cho Box Tài nguyên nầy, đây là bước phát triển mới về chất của các bạn. Mong các bạn viết bài nhiều hơn nữa cho Box Tài nguyên. Các Thủ thuật, Mã nguồn, Module, Hướng dẫn... của các bạn sẽ mãi mãi được lưu trữ và là tư liệu quý cho các bạn khác sau nầy.

Thân ái
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

longtep
Thành viên tích cực
Thành viên tích cực
Bài viết: 149
Ngày tham gia: CN 08/06/2008 9:45 pm
Has thanked: 10 time
Been thanked: 1 time

Re: Tạo một Standard DLL dùng VB6

Gửi bàigửi bởi longtep » T.Sáu 24/06/2011 12:57 pm

rất cám ơn bài của you, rất hay. Nhưng sao khi ứng dụng thì nó chỉ chạy duy nhất 1 hàm add(3,5)?
các hàm trừ và bphuong gõ y chang nhu trong DLL mà nó cứ báo là hàm chưa đc Điịnh nghĩa?

Mã: Chọn hết

Private Declare Function Add Lib "C:\Program Files\Microsoft Visual Studio\VB98\Project-dll\ab.dll" (ByVal a As Integer, ByVal b As Integer) As Integer
Sub Form_Load()
Text2 = Add(5, 8)
Text3 = Subtract(9, -2) 'luôn báo lôi~ o hàm này
Text1 = Add(9, 11)
Text4 = Square(-2) 'luôn báo lôi~ o hàm này
End Sub

thank all

Hình đại diện của người dùng
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Bài viết: 1259
Ngày tham gia: T.Năm 03/06/2010 9:23 pm
Đến từ: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 time
Been thanked: 137 time
Liên hệ:

Re: Tạo một Standard DLL dùng VB6

Gửi bàigửi bởi VuVanHoanh » T.Bảy 25/06/2011 8:01 pm

Hàm SubStract và Square ở đâu ra thế bạn?
Since 2008...
One love! :x

longtep
Thành viên tích cực
Thành viên tích cực
Bài viết: 149
Ngày tham gia: CN 08/06/2008 9:45 pm
Has thanked: 10 time
Been thanked: 1 time

Re: Tạo một Standard DLL dùng VB6

Gửi bàigửi bởi longtep » CN 26/06/2011 10:29 am

VuVanHoanh đã viết:Hàm SubStract và Square ở đâu ra thế bạn?

dạ là do các hàm này đc tống khứ trong DLL đó a!
  1. Public Function Add(ByVal a As Integer, ByVal b As Integer) As Integer
  2.     Add = a + b
  3. End Function
  4. Public Function Subtract(ByVal a As Integer, ByVal b As Integer) As Integer
  5.     SubTract = a - b
  6. End Function
  7. Public Function Square(ByVal a As Integer) As Integer
  8.     Square = a * a
  9. End Function
  10.  

làm y như tác giả nói mà nó ko ra........hỏi tac giả thì TG hem bít đang ở "phương trờ xứ lạ nào"

longtep
Thành viên tích cực
Thành viên tích cực
Bài viết: 149
Ngày tham gia: CN 08/06/2008 9:45 pm
Has thanked: 10 time
Been thanked: 1 time

Re: Tạo một Standard DLL dùng VB6

Gửi bàigửi bởi longtep » T.Hai 27/06/2011 8:25 am

hehehe, thank mọi người cuối cùng thì em cũng đã bít tại sao ùi...thiệt là có con mắt mà như mù...:)) thanks tác giả, nhân đây cho tui hỏi có cách ào khác để tạo DLL mà ko cần phải đổi linkThat không? Làm trực tiếp trên Class mà ko cần phải để class trống rồi tạo Module1?
thấy có người trong excel chỉ dùng có vầy là dịch ra luôn DLL?

Mã: Chọn hết

Private oApp As Excel.Application
Public WithEvents WB As Excel.Workbook
Attribute WB.VB_VarHelpID = -1
//khai báo các hàm tự nhiên....

blackit
Bài viết: 3
Ngày tham gia: T.Sáu 12/08/2011 6:25 pm

Re: Tạo một Standard DLL dùng VB6

Gửi bàigửi bởi blackit » T.Sáu 19/08/2011 3:12 pm

Bạn ơi cho mình hỏi:
mình tạo 1 file .dll bằng pascal rồi nhưng ko biết cách sử dụng nó vào VB như thế nào, có bạn chỉ là Project-> References->Browse-> nhưng mình làm thì hiện lỗi "Can't add a references to the specified file".
Mình mới học VB nên còn gà, mong bạn chỉ giúp

baohiep
Thành viên danh dự
Thành viên danh dự
Bài viết: 109
Ngày tham gia: CN 27/12/2009 6:37 pm
Đến từ: Tam Kỳ
Has thanked: 3 time
Been thanked: 9 time

Re: Tạo một Standard DLL dùng VB6

Gửi bàigửi bởi baohiep » T.Hai 09/07/2012 10:03 pm

Đây là file Link do mình tạo. mọi người test thử.
Tập tin đính kèm
Link.rar
Link.exe
(200.17 KiB) Đã tải 377 lần
I'm Hiep.

longtep
Thành viên tích cực
Thành viên tích cực
Bài viết: 149
Ngày tham gia: CN 08/06/2008 9:45 pm
Has thanked: 10 time
Been thanked: 1 time

Re: Tạo một Standard DLL dùng VB6

Gửi bàigửi bởi longtep » CN 29/07/2012 1:48 pm

Làm 1 tuần mà ko đc, ức chế quá. Nếu thiết kế cái dll mà trả lại chuỗi thì hình như ko đc hả các bác?
Đề bài: Xây dựng 1 dll sao cho khi sử dụng nó trả về 1 chuỗi đảo, đơn giản vậy thôi.
[vb]
Private Declare Function dao Lib "dao.dll" (ByVal a As String) As String
Private Sub Form_Load()
s = "mua xuan la cai gi"
w = dao(s)
MsgBox Len(dao(s)) & " " & w
End Sub
[\vb]
dùng len(dao(s)) de kiểm tra thì nó có độ dài OK, nhưng sao nó ko viết ra dc? làm kiểu gì cũng không là không?

solverpvd
Thành viên chính thức
Thành viên chính thức
Bài viết: 40
Ngày tham gia: T.Tư 14/04/2010 11:34 pm
Đến từ: (Phố cổ) Hội An - Quảng Nam
Liên hệ:

Re: Tạo một Standard DLL dùng VB6

Gửi bàigửi bởi solverpvd » T.Sáu 10/01/2014 2:53 pm

Tập tin đính kèm
Create_Standard dll.zip
(50.34 KiB) Đã tải 222 lần

solverpvd
Thành viên chính thức
Thành viên chính thức
Bài viết: 40
Ngày tham gia: T.Tư 14/04/2010 11:34 pm
Đến từ: (Phố cổ) Hội An - Quảng Nam
Liên hệ:

Re: Tạo một Standard DLL dùng VB6

Gửi bàigửi bởi solverpvd » T.Sáu 10/01/2014 3:09 pm

Khi nãy quên một link tham khảo ni nữa, cũng hay hay nên chia sẽ:
http://planet-source-code.com/vb/script ... 0&lngWId=1

solverpvd
Thành viên chính thức
Thành viên chính thức
Bài viết: 40
Ngày tham gia: T.Tư 14/04/2010 11:34 pm
Đến từ: (Phố cổ) Hội An - Quảng Nam
Liên hệ:

Re: Tạo một Standard DLL dùng VB6

Gửi bàigửi bởi solverpvd » T.Bảy 11/01/2014 2:56 pm

Minh họa cụ thể bằng hình ảnh và code đã được kiểm tra thành công.
Để đơn giản các bạn có thể dùng kết quả của mình, thực hiện các bước sau:
B1: thay tên file LINK.exe trong thư mục C:\Program Files\Microsoft Visual Studio\VB98 bằng linklnk.exe,
B2: copy file link.exe mình đã tạo vào thư mục của VB98 như trên,
B3: thay tên của các hàm mình cần khai báo trên file *.def để có thể truy xuất trong file thư viện dll (trong ví dụ này là file Fibonacci.def như hình minh họa)
B4: có thể make file dll của mình.
Tập tin đính kèm
(x)howto_make_standard_dll.zip
(133.78 KiB) Đã tải 223 lần

Hong Hai
Bài viết: 8
Ngày tham gia: CN 08/06/2014 11:14 am

Re: Tạo một Standard DLL dùng VB6

Gửi bàigửi bởi Hong Hai » T.Ba 29/07/2014 9:11 am

Xin chào các anh em! Bài viết của bạn "thuongbat" rất chi tiết và dễ dàng làm theo. Tuy nhiên mình gặp rắc rối với unicode, nó chạy không được. Ví dụ mình muốn bỏ cái hàm VniToUni() của VBlib vào 1 file DLL này thì nó chạy không đúng. Bạn nào biết chỉ mình với. Xin cám ơn


Quay về “[VB] Bài viết hướng dẫn”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách