Ver Mensaje Individual
  #6 (permalink)  
Antiguo 09/08/2005, 17:13
Avatar de Jad-Neo
Jad-Neo
 
Fecha de Ingreso: octubre-2004
Mensajes: 344
Antigüedad: 19 años, 6 meses
Puntos: 0
Método directo

Muchisimas gracias por su ayuda, pero para aquellos que no quieren usar el REGSVR32 ya encontré una manera mucho mas rápida (pero necesitas tener los privilegios suficientes o estar como cuenta Administrador).
Primero hagan la referencia a la DLL ActiveX en Referencias (si es una Dll hecha en C/C++ no sale la jugada), después pongan esto en el Form principal de la aplicaciónr:

Código:
'REGSVR32 hace una llamada a este Sub en la DLL y por eso lo puede registrar
Private Declare Function DllRegisterServer Lib "MiDllActiveX.dll" () As Long
'lo mismo hace pero con esta, para desregistrar
Private Declare Sub DllUnregisterServer Lib "MiDllActiveX.dll" ()
'Variable que hace la referencia a cualquier clase de la DLL, ustedes ponen la que quieran
Dim MiClase As XClase

'NOTA: Si son varias DLLs hay que usar Alias

Private Sub Form_Load()
On Error Resume Next
'Hay que registrar la DLL
DllRegisterServer

'Hacer la referencia
Set MiClase = New XClase

'Controlar el error
If (MiClase Is Nothing) Then
    MsgBox "No se puede encontrar MiDllActiveX.dll necesario para ejecutar este programa", vbExclamation
    End
End If
End Sub

'En el Unload del Form
Private Sub Form_Unload(Cancel As Integer)
'Liberar MiClase
Set MiClase = Nothing
'Desregistrar la DLL
DllUnregisterServer
End Sub
Después de todo este rollo y tener compilado el programa copien su(s) DLL(s) al directorio del ejecutable, ahora los van a poder llevar a todos lados y donde quieran(si se dan cuenta es una imitación de algunas DLLs stdcall de C/C++ con sus respectivos programas).

Espero les sirva. Bueno esto es para programas express, por así decirlo; para aquellos que no quieran crear todo un instalador por uno o dos DLLs. No más que tienen que ser con las DLLs de VB, todas la DLLs ActiveX y controles OCX tienen esas APIs mencionadas arriba, incluyendo otras no mesionadas pero no son de primera importancia, asi que no debe haber ningun problema. Bye y saludos.

P.D.: Ahora lo que estoy tratando es de comprobar si el componente ya está registrado o nó.

Última edición por Jad-Neo; 26/08/2005 a las 20:12 Razón: Correción