forzar VB6 para usar los archivos DLL y OCX desde el directorio de la aplicación

Iniciado por asdexiva, 10 Abril 2013, 22:36 PM

0 Miembros y 1 Visitante están viendo este tema.

asdexiva

asi es como dice el asunto se podria hacer que vb6 carge unos ocx desde la carpeta de la aplicacion  :)

MCKSys Argentina

Si. Antes de usarlos, registralos con regsvr32 y listo.

El tema es que si hay otras aplicaciones que los usan, también usarán los de tu carpeta.

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


cobein

Podes crear un manifest y de esa forma evitar el registro de los componentes, aca te dejo el link de una app para realizar esto.

http://mmm4vb6.atom5.com/
http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.

Enemy

Hmm mira, yo tengo esto pero aun no lo probe en una maquina que no tenga registrada la DLL, probalo vos y decime si te servio.

Pone esto en un modulo:

Código (vb) [Seleccionar]

Public Declare Function DllRegisterServer Lib "TUDLL.ocx" () As Long


Ahora esto ponelo en el Form_load de tu programa:

Código (vb) [Seleccionar]
Private sub Form_load ()
DllRegisterServer
End sub


En realidad es algo mas completo pero le estuve sacando codigo y eso fue lo que me quedo, donde lo encontre habia tambien para un-register tambien y un par de cosas mas, pero creo que asi debe funcionar. Espero que te sirva.

PD: Yo aun no compilo mi programa y tambien usa librerias propias, me pregunto ahora... como sabe la ruta de la ocx? si alguien nos puede responder...

MCKSys Argentina

Cita de: Bakura182 en 15 Abril 2013, 05:53 AM
me pregunto ahora... como sabe la ruta de la ocx? si alguien nos puede responder...

Porque son objetos COM: https://en.wikipedia.org/wiki/Component_Object_Model

Por eso hay que "registrarlos".

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


Enemy

Si pero mi duda mas que nada era que como reconoce, el dllregisterserver, la ruta del ocx que especifique en el modulo?

En mi caso tengo la ocx suelta en la ruta de mi programa: app.path & "\Miocx.ocx" pero en ningun momento especifique esa ruta en el modulo, ira a servir de todas formas?

Yo lo que quiero saber es, que si con ese codigo, mi programa va a poder iniciar sin necesidad de registrar manualmente la OCX.

MCKSys Argentina

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."