Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Twse, Se Acerca Ya... :)

Iniciado por tewe76, 17 de Abril de 2005, 10:22:08 PM

« anterior - próximo »

tewe76

 Estoy dando ya los últimos retoques al minijuego que voy a usar para que testeéis la nueva versión de mi miniengine TWSE. El juego en sí ya está prácticamente acabado (es un poco chorras, digamos que me he planteado una compo24h para mí mismo :) , y ha salido lo que veréis, pero suficiente para probar el engine). Lo que pasa es que esta vez quiero hacerlo ya en plan más definitivo, es decir, con su instalador y tal, para testearlo también. Para ello, voy a usar Inno Setup, y la gran duda que tengo es: ¿qué ficheros DLL, etc, tengo que incluir en la instalación?
Hay que tener en cuenta que mi engine usa DX7 y está hecho en VB6.

1- Necesarios para Visual Basic 6.
Según la ayuda del propio Inno Setup, para distribuir programas de VB6, hay que incluir:
stdole2.tlb
msvbvm60.dll
oleaut32.dll
olepro32.dll
asycfilt.dll
comcat.dll

Sobre ésto, pues me fío de lo que me diga Inno, así que no tengo dudas.

2- Necesarios para DirectX 7.
Para usar DX7 en VB, tengo que referenciar:
dx7vb.dll
Aquí si que tengo alguna duda. ¿Es necesario incluir este archivo? ¿Sólo con él ya funcionaría DX7 o el usuario necesitaría las runtimes de DX7 de todas formas? ¿Si se instala las runtimes, "dx7vb.dll" también quedará instalado? ¿A partir de qué versión de Windows viene ya instalado por defecto DX7 (me suena que Windows 98 o Windows 95 a partir de un servipack)? Si debo incluir el archivo, ¿puedo usar el que está en mi carpeta System32 sin más, o debo usar una versión "limpia"?

3- Otros:
Mi engine, para otras cosas de apoyo, usa algunos "Declare" a:
user32
gdi32
kernel32

¿Ésto me obliga a incluir algún archivo más? Creo que no, creo que son DLLs del sistema que vienen en cualquier Windows, pero pregunto por si acaso.

Bueno, pues a ver si me podéis ayudar, que es bastante importante. Para el que no lo sepa, mi intención es usar este engine para hacer juegos share, es decir, que tengo que hacer que a los usuarios (y posibles futuros compradores) les vaya todo como la seda, y no les pida DLLs, ni cosas así. Porque si no, ya me puedo comer mis juegos con patatas :D

En dos o tres días, si todo va bien y sois niños buenos ;), podréis jugar con mi jueguecito ultramegaguay :D

Gracias a todos.
Tewe
www.TAPAZAPA.com : Funny and easy to play games for all ages! - Fairy Match - Brain Crash
www.LaRebelionDelBiberon.com : Experiencias de unos padres primerizos

ethernet

 La solución ideal es probar en un equipo limpio, aunque creo que alguna de las dll's que citas vienen con todos los windows (me refiero a user32
gdi32 kernel32)

saludos, nos quedas con las ganas de ver el juego  

[EX3]

 No me hagas mucho caso pero yo en mis instalaciones solo agrego dos librerias basicas del VB, la runtime por excelencia "msvbvm60.dll" y la "oleaut32.dll" y jamas he tenido problema alguno instalando mis programas. La dll de DirectX no tienes que incluirla en la instalacion ya que es parte del API de DirectX, y la "user32.dll", "GDI.dll" y la "kernel32.dll" son parte del API de Windows, en la instalacion solo debes incluir los archivos que no son intrinsecos del sistema, osea, en este caso las runtimes del vb, al menos las que te he mencionado.

Sobre que version de windows trae de serie instalada DirectX 7 me da que ninguna pero no estoy seguro, Windows 98 trae de serie DirectX6.1 y Windows Xp trae DirectX8.0, puede que Windows Me o Windows 2000 traigan la 7 aunque no creo, posiblemente sea la 8 tambien.

Para evitar problemas con la version de DirectX deberias meter en el cd la distrubucion de la version que requiere el programa, en este caso la de la version 7 y hacer que el instalador detecte si esta instalada o no dicha version o posteriores, si detecta una version anterior que lance la instalacion de DirectX.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Astharoth

 
Hola.

Aparte de las que tienes "fichadas", si te quieres asegurar, con los visual studio viene una herramienta llamada "depends.exe" (hay tambien muchas otras free por ahi, si mal no recuerdo el PE Explorer tambien te lo muestra) te saca la lista de dll's con las que tienes dependencias estaticas (es decir, por importacion de simbolos y que se cargan y resuelven al cargar el PE).

Con ello tendras la lista completa de las que requiera tu ejecutable.. eso si, sin las que uses manualmente a base de LoadLibrary y GetProcAddress.

Lo que yo te recomiendo antes de sacar un paquete a release (a ti y a todos) es instalar en maquina limpia (vale por ejemplo en un vmware o virtualpc) y ver que todo queda ok (no solo por ficheros, sino por paths, etc,etc,etc,etc).

Un Saludete.

tewe76

 Ahora estoy muy liado :(. Voy a comprobar algunas cosas de lo que decís y ya os comento algo.

PS: No quiero crear falsas expectativas. No esperéis un DooM3 :D, es un jueguecito chorras con un montón de posibles mejoras :)
Tewe
www.TAPAZAPA.com : Funny and easy to play games for all ages! - Fairy Match - Brain Crash
www.LaRebelionDelBiberon.com : Experiencias de unos padres primerizos

tewe76

 Antes de nada, gracias a todos por contestar.
Bueno, vamos por partes:

CitarLa solución ideal es probar en un equipo limpio
Ya, sería lo ideal, pero ahora mismo no me es posible. Probablemente antes de comercializar mi primer juego ya me habré comprado un PC nuevo, por lo que podré usar este para hacer pruebas.

CitarNo me hagas mucho caso pero yo en mis instalaciones solo agrego dos librerias basicas del VB, la runtime por excelencia "msvbvm60.dll" y la "oleaut32.dll" y jamas he tenido problema alguno instalando mis programas.
Me has convencido...no te hago mucho caso :D :D No, en serio. Es posible que tengas razón pero, la verdad, me fío más de lo que diga el de Inno. Después de todo es una utilidad con miles de usuarios, supongo que estará todo más testeado de lo que tú o yo podamos hacer. Sin acritud, ¿eh? ;) Además, tus dos DLLs ocupan 1.89MB y las otras ocupan sólo 343K, así que no merece la pena arriesgarse, creo.

CitarLa dll de DirectX no tienes que incluirla en la instalacion ya que es parte del API de DirectX
Ajá, perfecto.

CitarSobre que version de windows trae de serie instalada DirectX 7 me da que ninguna pero no estoy seguro, Windows 98 trae de serie DirectX6.1 y Windows Xp trae DirectX8.0, puede que Windows Me o Windows 2000 traigan la 7 aunque no creo, posiblemente sea la 8 tambien.
Bueno, me refería a DX7 o superior. Aunque tengo una duda. Se supone que en una máquina con DX8 ó DX9 funciona todo lo que use DX7, ya que son compatibles hacia atrás. Sin embargo: si alguien, en un PC donde nunca se haya instalado DX7, instala DX8 ó DX9, ¿instalará también el "dx7vb.dll"? Esta DLL es específica para usar DX7 en VB. ¿Seguro que la instala también el setup de DX8? Una pregunta importante... O_O

CitarPara evitar problemas con la version de DirectX deberias meter en el cd la distrubucion de la version que requiere el programa, en este caso la de la version 7
¿CD? Ah, éso que se usaba antes... jeje, la venta será online, a través de descarga, no hay CD (bueno, al menos no por defecto). Por éso es importante concretar qué hace falta y qué no.

Citary hacer que el instalador detecte si esta instalada o no dicha version o posteriores, si detecta una version anterior que lance la instalacion de DirectX.
Creo recordar que tú también usas Inno Setup, ¿no? ¿Sabes cómo hacer que compruebe éso?
Bueno, a una mala supongo que podría hacer la comprobación yo mismo, al ejecutar la aplicación. Aunque no sé cómo exactamente...¿registro de Windows? ¿un Dir de algún archivo concreto, como dx7vb.dll, por ejemplo?

Tewe
www.TAPAZAPA.com : Funny and easy to play games for all ages! - Fairy Match - Brain Crash
www.LaRebelionDelBiberon.com : Experiencias de unos padres primerizos

tewe76

 Vaya, le he dado a "Responder" sin querer  (nooo)
Sigo aquí:

Citarcon los visual studio viene una herramienta llamada "depends.exe" (hay tambien muchas otras free por ahi, si mal no recuerdo el PE Explorer tambien te lo muestra) te saca la lista de dll's con las que tienes dependencias estaticas (es decir, por importacion de simbolos y que se cargan y resuelven al cargar el PE).
Hay una que se llama Dependency Walker, no sé si te refieres a esa. Y me saca estas:
ADVAPI32.DLL ->¿uh?
GDI32.DLL ->sistema
KERNEL32.DLL ->sistema
MSVBVM60.DLL ->fichada :)
NTDLL.DLL ->¿sistema?
OLE32.DLL ->¿uh?
OLEAUT32.DLL ->fichada :)
RPCRT4.DLL ->¿uh?
USER32.DLL ->sistema
Vamos, que ni son todas las que están ni están todas las que son :(

CitarLo que yo te recomiendo antes de sacar un paquete a release (a ti y a todos) es instalar en maquina limpia (vale por ejemplo en un vmware o virtualpc) y ver que todo queda ok (no solo por ficheros, sino por paths, etc,etc,etc,etc).
¿Esas virtual machines son fiables? Quiero decir, si funciona en un "emulador" de Win98, ¿es seguro que funcionará en un Win98 real?


Una prueba que acabo de hacer es crear el paquete de instalación con el asistente del propio VB, a ver qué incluía. Y, efectívamente, incluye las 6 DLLs que he comentado al principio. Además, incluye también la de DX7.


Conclusiones:
1- ¿Quién me mandará meterme en estos fregaos? ¡Maldito ZX Spectrum que me enganchó a este mundillo! :)
2- Voy a distribuir stdole2.tlb, msvbvm60.dll, oleaut32.dll, olepro32.dll, asycfilt.dll, comcat.dll y dx7vb.dll
(esta última por si acaso, aunque son 588K :()

Sigo abierto a sugerencias
Tewe
www.TAPAZAPA.com : Funny and easy to play games for all ages! - Fairy Match - Brain Crash
www.LaRebelionDelBiberon.com : Experiencias de unos padres primerizos

StraT

 Tengo winxp, nunca he instalado direct 7.0, actualmente tengo la 9, y si, tengo dx7vb.dll, msvbvm60.dll, oleaut32.dll, olepro32.dll, asycfilt.dll, comcat.dll,  en system32, osea, todas.

Saludos
quot;Solo hay dos cosas infinitas, el universo y la estupidez humana, aunque de lo primero no estoy muy seguro\\\" Einstein

shephiroth

 ADVAPI32.DLL ->¿uh?->sistema, pero no toy seguro >_<
GDI32.DLL ->sistema
KERNEL32.DLL ->sistema
MSVBVM60.DLL ->fichada
NTDLL.DLL ->¿sistema?->sistema, creo q tiene q ver con particiones ntfs
OLE32.DLL ->¿uh?->sistema, pero no se de que xDD
OLEAUT32.DLL ->fichada
RPCRT4.DLL ->¿uh?->Sistema, ver abajo xDD
USER32.DLL ->sistema

rpcrt4.dll is the Remote Procedure Call (RPC) API, used by Windows applications for network and Internet communication.
fuente-> http://www.liutilities.com/products/wintas...library/rpcrt4/

Es una libreria q "creo" solo esta en motores NT, y son de uso interno, no es necesario.

SALUDOS ^^ y suerte con el juego ^^

De ahi la unica q deberias incluir seria la de MSVBVM60.DLL, la de visual basic xDD

P.D: No vi el ultimo mensaje de Strat. Tienes la libreria de visual pq se te instalaria con el compilador (supongo  (nooo) ) pero de base creo q no viene (puede q en algun SP la metieran xDD).

[EX3]

 
Cita de: "tewe76"
CitarNo me hagas mucho caso pero yo en mis instalaciones solo agrego dos librerias basicas del VB, la runtime por excelencia "msvbvm60.dll" y la "oleaut32.dll" y jamas he tenido problema alguno instalando mis programas.
Me has convencido...no te hago mucho caso :D :D No, en serio. Es posible que tengas razón pero, la verdad, me fío más de lo que diga el de Inno. Después de todo es una utilidad con miles de usuarios, supongo que estará todo más testeado de lo que tú o yo podamos hacer. Sin acritud, ¿eh? ;)
ADVAPI32.DLL ->Comun en plataformas 9x (desde Windows 98) y plataformas NT.

GDI32.DLL -> Comun en plataformas 9x (desde Windows 98) y plataformas NT.

KERNEL32.DLL -> Comun en plataformas 9x (desde Windows 98) y plataformas NT.

MSVBVM60.DLL -> Comun en plataformas NT (desde Windows 2000 o XP)

NTDLL.DLL -> Exclusiva de plataformas NT

OLE32.DLL -> Comun en plataformas 9x (desde Windows 98) y plataformas NT.

OLEAUT32.DLL -> Comun en  plataformas 9x (desde Windows 98 "creo") y plataformas NT.

RPCRT4.DLL -> Comun en plataformas 9x (desde Windows 98) y plataformas NT.

USER32.DLL -> Comun en plataformas 9x (desde Windows 98) y plataformas NT.


Vamos, a ver, el programa o asistente que estas usando con el Inno Setup Compiler para crear el script de instalacion para proyectos de VB se basa en el arcaico asistente del VB, arcaico por funcionamiento y por requisitos, casi todas esas dlls que mencionas vienen con Windows 98 en adelante, esas dlls solo deberias incluirlas si fueses a instalar tu programa en Windows 95 cosa improbable por que si no tengo mal entendido, DirectX 7 no se puede instalar en Windows 95 con lo cual queda descartado.

Cita de: "tewe76"Además, tus dos DLLs ocupan 1.89MB y las otras ocupan sólo 343K, así que no merece la pena arriesgarse, creo.
Imagino que te refieres a la "msvbvm60.dll" y la "oleaut32.dll". Te aseguro que sin esas dos dlls como minimo no lograras hacer correr tu programa ya que la priemera es la runtime y la segunda el servicio de funciones OLE del VB. La "oleaut32.dll" se puede suprimir tambien de la instalacion si quitas la referencia en el programa y logicamente no estes usando ninguna funcionalidad OLE.

Cita de: "tewe76"
CitarSobre que version de windows trae de serie instalada DirectX 7 me da que ninguna pero no estoy seguro, Windows 98 trae de serie DirectX6.1 y Windows Xp trae DirectX8.0, puede que Windows Me o Windows 2000 traigan la 7 aunque no creo, posiblemente sea la 8 tambien.
Bueno, me refería a DX7 o superior. Aunque tengo una duda. Se supone que en una máquina con DX8 ó DX9 funciona todo lo que use DX7, ya que son compatibles hacia atrás. Sin embargo: si alguien, en un PC donde nunca se haya instalado DX7, instala DX8 ó DX9, ¿instalará también el "dx7vb.dll"? Esta DLL es específica para usar DX7 en VB. ¿Seguro que la instala también el setup de DX8? Una pregunta importante... O_O
Tanto DirectX8 como DirectX9 la incluyen, al igua que incluye las librerias de versiones anteriores a la 7, logicamente por razones de compatibilidad.

Cita de: "tewe76"
CitarPara evitar problemas con la version de DirectX deberias meter en el cd la distrubucion de la version que requiere el programa, en este caso la de la version 7
¿CD? Ah, éso que se usaba antes... jeje, la venta será online, a través de descarga, no hay CD (bueno, al menos no por defecto). Por éso es importante concretar qué hace falta y qué no.
Creo que la distribucion de las runtimes no es muy pesada, asi que no seria problema incluirla con el juego, mas que nada para evitar problemas si el usuario no tiene instalada la version correcta.

Cita de: "tewe76"
Citary hacer que el instalador detecte si esta instalada o no dicha version o posteriores, si detecta una version anterior que lance la instalacion de DirectX.
Creo recordar que tú también usas Inno Setup, ¿no? ¿Sabes cómo hacer que compruebe éso?
Bueno, a una mala supongo que podría hacer la comprobación yo mismo, al ejecutar la aplicación. Aunque no sé cómo exactamente...¿registro de Windows? ¿un Dir de algún archivo concreto, como dx7vb.dll, por ejemplo?
Con que compruebes que version de DirectX esta instalada en el sistema te basta. DirectX instala una dll llamada "dxsetup.dll" que tambien puedes agregar a tu instalacion (no hay que registrarla) que trae una funcion que te devuelve la version instalada de DirectX. Sobre como hacerlo mediante el Inno Setup ni idea, seria similar en principio, mediante el script se pueden hacer llamadas a funciones de dlls asi que seria algo similar a lo mencionado anteriormente pero no sabria exactamente como hacerlo.

En resumen, solo precisas la "msvbvm60.dll" y posiblemente la "oleaut32.dll", esta ultima dependiendo de si usas o no funciones OLE en tu programa.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

[EX3]

 
Cita de: "[EX3@ 20/04/05"]RPCRT4.DLL -> Comun en plataformas 9x (desde Windows 98) y plataformas NT.
Ya que no se puede ni editar ni citar por misteriosas fallas en el foro aprovecho para rectificar esto ultimo, RPCRT4.DLL es solo exclusiva de plataformas NT.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

StraT

 
CitarP.D: No vi el ultimo mensaje de Strat. Tienes la libreria de visual pq se te instalaria con el compilador (supongo wallbash.gif ) pero de base creo q no viene (puede q en algun SP la metieran xDD).

Formateé el pc y aún no instalé ningún compilador, :D

Saludos
quot;Solo hay dos cosas infinitas, el universo y la estupidez humana, aunque de lo primero no estoy muy seguro\\\" Einstein

[EX3]

 
Cita de: "StraT"
CitarP.D: No vi el ultimo mensaje de Strat. Tienes la libreria de visual pq se te instalaria con el compilador (supongo wallbash.gif ) pero de base creo q no viene (puede q en algun SP la metieran xDD).

Formateé el pc y aún no instalé ningún compilador, :D

Saludos
La "msvbvm60.dll" viene incluida desde  Windows 2000 o XP, al igual que la "msvbvm50.dll" (runtime del VB5) que viene con Windows 98 creo y creo que tb la del 4.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.