1. Tạo file DLL trong VB6.
Mở VB6 chọn ActiveX DLL.
Bạn cần đăng nhập để thấy đính kèm
Trên đó tôi viết code như sau:
Public Function tinhtong(ByVal i As Integer, ByVal j As Integer) As Integer
tinhtong = i + j
End Function
Tiếp theo tôi đổi tên project như sau:
Click chuột phải vào Project và chọn Properties.
Bạn cần đăng nhập để thấy đính kèm
Bạn cần đăng nhập để thấy đính kèm
Tôi nhập tên là MyDLL_1 và ấn OK.
Tiêp theo tôi viết code trên class như sau:
Public Function tinhtong(ByVal i As Integer, ByVal j As Integer) As Integer
tinhtong = i + j
End Function
Giả thiết đây chính là logic ta muốn giấu không cho người khác biết.
Do đó tới đây tôi sẽ build ra DLL.
Bạn cần đăng nhập để thấy đính kèm
Vào File và Make DLL như hình trên.
Giờ thì bạn có thể save project và đóng VB6 đi.
Xin lưu ý là khi build DLL ra sẽ có cảnh báo gì đó, không phải lỗi đâu, kệ nó.
2. Tạo file Exe VB6.
Mở VB6 và làm như hướng dẫn trong
Bạn cần đăng nhập để thấy link
.
Bạn cần đăng nhập để thấy đính kèm
Bạn chọn ActiveX EXE và ấn OK.
Tôi sẽ thực hiện add thư viện DLL vừa tạo ở bước trên vào file exe này.
Bạn cần đăng nhập để thấy đính kèm
Vào Project và vô Refenreces.
Chọn tới file DLL mà ta vừa tạo ban nãy.
Bạn cần đăng nhập để thấy đính kèm
Bây giờ tôi viết code như sau :
Public Function Newinstance(ProgID As String) As Object
Set CreateInstance = CreateObject(ProgID)
End Function
Public Function tinhtong2(ByVal a As Integer, ByVal b As Integer) As Integer
Dim c As New MyDLL_1.Class1
tinhtong2 = c.tinhtong(a, b)
End Function
Tôi đổi tên class là TestTHVBAX.
Bạn cần đăng nhập để thấy đính kèm
Thực hiện build ra exe. Tôi build ra file là
Project1.exe
Tiến hành đăng ký file exe như hướng dẫn ở
Bạn cần đăng nhập để thấy link
.
Tiến hành đăng ký file DLL như sau:
Mở CMD chạy với quyền admin.
Gõ lệnh:
cd C:\Users\user\Desktop\DLL
trong đó đường dẫn C:\Users\user\Desktop\DLL là nơi tôi đang lưu file DLL ở đó.
Mục đích của lệnh trên là di chuyển con trỏ về đó.
Tiếp theo chạy lệnh sau:
Rồi , bây giờ thì mở exel lên và add file exe vô thư viện.
Bạn cần đăng nhập để thấy đính kèm
Trên Excel tôi viết code như sau:
Sub abb()
Dim a As New Project1.TestTHVBAX
x = a.tinhtong2(3, 5)
MsgBox x
End Sub
Code chạy và không có lỗi lầm gì.
Bạn cần đăng nhập để thấy đính kèm
Xin lưu ý, cách bảo mật này thì người ta vẫn có thể coi được code của exe. Nhưng code ở exe không hề có logic gì cả, mà logic nằm ở file DLL.
Theo tôi biết thì code DLL được bảo mật, không có khả năng coi được code. Do đó phương án bảo mật này được coi là cách tốt.
Bài viết đã được thực nghiệm trên win 10 64 bit, office 2016 64bit.
Nếu muốn hủy đăng ký DLL thì bạn gõ lệnh sau:
regsvr32.exe /u MyDLL_1.dll
Nguồn tham khảo :
https://qiita.com/tukiyo3/items/0d53cffb2fa44806eb5d