Phương pháp sử dụng DLL mà không cần đăng ký REGSVR32

  • Thread starter Deleted member 293
  • Ngày gửi
D

Deleted member 293

Guest
Em chào các anh chị trên diễn đàn. Em đã tạo được ActiveX DLL bằng Visual Basic 6.0 . Em đã sử dụng được DLL này bình thường bằng cách đăng ký DLL thông qua REGSVR32. Em muốn làm thế nào đó mà sử dụng được DLL này mà không cần đăng ký. Ý tưởng cảu em là để file dll này và file exe cùng chung thư mục. Rồi làm thế nào để file exe này load được DLL. Em có tìm hiểu thì nghe nói LoadLibrary có thể làm được điều này. Rất mong anh chị nào có kinh nghiệm rồi, có thể chia sẻ cho em được không?
 

Euler

Administrator
Thành viên BQT
Về DLL, cần xác nhận nó có thể đăng ký bằng REGSVR32 được hay không?
Trường hợp không đăng ký được : Đây không phải là DLL kiểu ActiveX. Tôi nghĩ nó có thể là DLL được tạo ra từ C hay VC. Trong trường hợp này thì bạn có thể sử dụng DLL mà không cần đăng ký. Ở VB thì cấu trúc là:
Mã:
 [Declare ...] hoặc [API:LoadLibrary], [API:GetProcAddress]
Trường hợp đăng ký được :
Đây là ActiveX DLL. Tôi nghĩ nó được tạo ra từ VB hoặc VC. Khi đăng ký thì bạn có thể sử dụng nó. Trong VB cấu trúc là:
Mã:
[CreateObject()] hoặc [API::CoCreateInstance]
Với ActiveX DLL được tạo ra từ Visual Basic 6.0 : Nếu không đăng ký thì không chạy được. Có lẽ câu chuyện bạn muốn hỏi không phải là ActiveX mà là câu chuyện về API? API thì không thể được tạo ra từ VB. Bạn có thể dùng VC để tạo ra API.
 

NhanSu

SMod
Thành viên BQT
Mình chưa thử nhưng bạn có thể đọc ở đây


Ở link 2 có cả mã nguồn VB.
Ý tưởng là dùng LoadLibrary để nạp dll vào bộ nhớ; dùng GetProcAddress để lấy địa chỉ hàm DllRegisterServer; gọi hàm DllRegisterServer để đăng ký.
 
Top