Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: Abbet en Agosto 14, 2010, 03:54:59 pm
-
Buenas, me ha saltado una duda sobre las dependencias de un vb project.
Por ejemplo, el ocx del common controls tiene una dll, es necesaria esta dll? Me he fijado que en varios programas como setup factory por ejemplo, cuando analizan el vbp solo cogen ocx y dlls que usa el proyecto, ignorando por completo las dlls asociadas a ocx.
-
Supongo que eso es porque esas dll ya las trae windows, igual me gustaría saber del tema.
Saludos.
-
Espero que alguien que sepa mas del tema nos pueda solucionar esta duda que es bastante interesante sobretodo si distribuimos instaladores de los projects.
-
Por lo general, yo selecciono todas las ocx y dll que considero necesarias aunque el Setup Factory no me las muestre al momento de seleccionar el proyecto. Esto por la sencilla razon que evito que el aplicativo desarrollado me arroje algun problema por falta de alguna dll u ocx.
-
Para dejar en claro, los ocx pueden ser el control en si, o ser una especie de "puente" con el control real. Por ejemplo, el OCX de common controls es un puente con los controles reales que se crean mediante API. Si la DLL del common controls no existiera en el sistema, no habria controles en todo windows, apareciendo BSODs por todos lados. Es por eso que la dll del Common controls NO es necesaria de incluir en las instalaciones. Hay una sola forma de justificar agregarlas, por ejemplo una version relativamente vieja del common controls 6 tiene errores al usarlo con el toolbar subclass de leandro; entonces ahi uno agrega la version correcta (por si el sistema destino tiene la version vieja) y listo.
saludos
-
abran el archivo.vbp, se van a encontrar con un archivo de configuracion similar a un archivo.ini
Type=Exe
Form=Form1.frm
Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\Windows\SysWOW64\stdole2.tlb#OLE Automation
Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0; mscomctl.OCX
Object={3B7C8863-D78F-101B-B9B5-04021C009402}#1.2#0; richtx32.Ocx
Startup="Form1"
Command32=""
Name="Proyecto1"
HelpContextID="0"
CompatibleMode="0"
MajorVer=1
MinorVer=0
RevisionVer=0
AutoIncrementVer=0
'etc .....
como veran bajo [ Object y Reference ] se encuentran las referencias o dependencias referias al proyecto.
para encontrar el path correcto de cada archivo activex, desde regedit ir a la rama [HKEY_CLASSES_ROOT\TypeLib\] mas el valor {xxx-xxx-xxx} y bajar una rama por cada # y finalizando en Win32, ejemplo de mscomctl.OCX:
HKEY_CLASSES_ROOT\TypeLib\{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}\2.0\0\Win32
ovbiamente puede fallar, pero creo que es asi.
asi van a sacar todas las referencias que utilizaron en sus proyectos de Visual basic 6.0
y acuerdencen de que no todas tienen que ser incluidas en un instalador porque en Windows (desde XP) algunas ya vienen por defecto como:
msvbvm60.dll
oleaut32.dll
olepro32.dll
comcat.dll
asycfilt.dll
stdole2.tlb
pueden variar dependiendo del SP de VB6 que utilizen.
-
Aham, entonces por lo que comentais:
msvbvm60.dll
oleaut32.dll
olepro32.dll
comcat.dll
asycfilt.dll
stdole2.tlb
ya vienen desde Xp como dice xkiz y sobre los ocx puente, por lo visto en caso de setup factory cuando coges el ocx del richtextbox te agrega la dll, así que tenes razon en cuanto a que algunas si vienen y otras.
Lo mejor creo que sería chequear si estan en el sistema desde el instalador antes de copiarlas, no les parece?
-
Y porque simplemente no pones todas en tu instalador? digo, porque que pasa si en alguna PC que vayas alguna de las que estaba preinstalada este dañada o alterada, no se.
-
a lo que me quise referir yo con los archivos que ya vienen por defecto en Win desde XP, no es solo para incluirlas en el instalador
que al fin y al cavo son unos 3.26MB, si no, para que no sean borradas y o desRegistradas al desinstalar el programa.
-
Puedo dejarme de tontadas y añadirlas todas pero me gustaría no hacer grande el instalador.