Foros - Stratos

Proyectos => Proyecto dx_lib32 => Mensaje iniciado por: [EX3] en 06 de Febrero de 2007, 05:08:19 AM

Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: [EX3] en 06 de Febrero de 2007, 05:08:19 AM
(http://img100.imageshack.us/img100/6219/windowsvistahomepremiumnf1.png) (http://www.recursosvisualbasic.com.ar/imagenes/dxlib32box3tu.gif)

Finalmente he tenido la oportunidad de poder instalar Windows Vista edicion Home Basic (la edicion mas baja de las 6 ediciones disponibles, sin contar con la edicion Starter, similar a un Windows XP Home Edition) en una maquina virtual VMware a falta de un disco duro extra o un equipo a parte para hacer una instalacion real, y he aprovechado entre otras cosas ha testear mis desarrollos en Visual Basic 6.0, entre ellos el que mas me interesaba que era la dx_lib32.

Despues de unas cuantas peleas con el tema de registrar componentes ActiveX el resultado ha sido satisfactorio. Para el que no lo sepa todavia para poder añadir al registro de Windows un componente (OCX) o libreria ActiveX (DLL), ya sea de forma manual a traves de la utilidad REGSVR32.EXE, mediante el API de Windows, o mediante una instalacion, se han de tener permisos de administrador, cosa que hasta Windows XP ha sido facil debido a que en Windows el usuario por defecto siempre ha sido el administrador de la maquina por lo que no tenia restricciones sobre las operaciones sobre el sistema. En Vista esto cambia, ahora el usuario por defecto ya no dispone de todos los permisos de administrador por motivos de seguridad, por lo que el registro de ActiveX se queda capado. La unica forma de momento que he encontrado es iniciar Windows Vista en modo seguro ya que en este modo siempre tendremos la posibilidad de iniciar sesion como administrador. A partir de aqui, como siempre, dispondremos de los metodos de siempre para registrar libremente un componente en el sistema.

Dicho esto, queda avisado de que la utilidad de registro que incluye la distribucion de dx_lib32 no funcionara en una sesion normal de Windows Vista a no ser que la ejecutemos con la opcion Ejecutar como administrador que es una via mas rapida que la de iniciar en modo seguro:

(http://img247.imageshack.us/img247/2645/clipboard01hm8.png)

De esta manera, si nuestro programa tiene que ejecutar operaciones que requieran privilegios de administrador podra llevarlos a cabo. En este caso se registraria asi dx_lib32 en el sistema.

Otro aviso es que, como me temia, no vienen instaladas de serie en Windows Vista con el nuevo DirectX10 los componentes COM que permiten acceder a la API de DirectX7 (dx7vb.dll) y DirectX8 (dx8vb.dll) desde Visual Basic 6.0, dependencias necesarias para ejecutar dx_lib32. Estas se tienen que añadir manualmente junto a dx_lib32 en el proceso descrito antes. A partir de la proxima revision de dx_lib32 estas librerias vendran junto a dx_lib32 en el directorio BIN por si fuese necesario instalarlas y programare la utilidad de registro para que registre opcionalmente si se le especifica estas librerias.

Una vez logrado registrar la dx_lib32 en el sistema, ejecute todos los tutoriales de dx_lib32 a excepcion de los tutoriales de la clase dx_GFX dado que la maquina virtual no puede emular la aceleracion grafica de Direct3D, via que aprovecha dx_GFX para ejecutar sus rutinas graficas. Todos los tutoriales funcionaron a la perfeccion sin dar problema alguno. Los tutoriales graficos deberian funcionar igualmente dado que el resto de librerias de DirectX8 estan presentes en DirectX10. Aun asi, si alguien dispone de una version de Windows Vista, Release Candidate o Final, instalacion real, no emulada, estaria bien que hiciera las pruebas.

Otra pureba que si realize y fue igualmente satisfactoria en lo que respecta al problema de registros de de ActiveX en sesion de usuario en Vista fue testeando esta (http://dxlib32.se32.com/private/tlsa_v0.1.0.63_MoleBox.rar) version de mi proyecto TLSA Engine que lleva inyectadas las dependencias minimas para ejecutarse en Windows 98 y Vista* (msvbvm60.dll, oleaut32.dll, dx7vb.dll*, dx8vb.dll*, dsetup.dll y dxlib32.dll) en el propio codigo del ejecutable gracias a esta herramienta (http://www.molebox.com/) y que sin tener instalada la dx_lib32 ni los componentes COM de DirectX para Visual Basic 6.0 este se ejecuto correctamente sin echar en falta ninguna libreria ni lanzar un error de creacion de objetos ni errores relacionados.

Este metodo no solo facilita la distribucion en el resto de versiones de Windows si no que evita el problema de no poder instalar comodamente cualquier desarrollo que hagamos en Windows Vista. En caso de hacer una instalacion para Windows Vista y que esta permita registrar nuestros componentes desde una sesion normal de usuario podeis consultar este  (http://msdn.microsoft.com/msdnmag/issues/07/01/UAC/default.aspx?loc=es#S5)articulo de la MSDN que describe algunos consejos y pasos a seguir para generar instalaciones con permisos de administrador para Windows Vista con el sistema MSI de instalacion de Windows.

Resumiendo:
dx_lib32 en Windows Vista hay que añadir como dependecias las librerias dx7vb.dll y dx8vb.dll y registrarlas en el sistema.

2. Para registrar componentes ActiveX en Windows Vista se debera iniciar Windows en modo seguro.[/list]
Cualquier comentario, duda o informacion extra que tengais y no este indicada en este articulo no dudeis en escribirla.

Salu2...

Enlaces relacionados:
Sobre la compatibilidad de Visual Basic 6.0 y Windows Vista (http://www.elguille.info/lonuevo/lo_nuevo0611.aspx#nov11VB6) (elGuille - http://www.elguille.info/)
Enseñe a sus aplicaciones a ejecutarse sin problemas con el control de cuentas de usuario de Windows Vista (http://msdn.microsoft.com/msdnmag/issues/07/01/UAC/default.aspx?loc=es) (MSDN Magazine - http://msdn.microsoft.com/msdnmag/)
Título: Re: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: fiero en 06 de Febrero de 2007, 08:28:10 AM
Cita de: "[EX3"]
2. Para registrar componentes ActiveX en Windows Vista se debera iniciar Windows en modo seguro.[/list]
Cualquier comentario, duda o informacion extra que tengais y no este indicada en este articulo no dudeis en escribirla.

Me has hecho instalar la versión home basic solo para comprobar esto ;) . La instalación de mi ActiveX me funcionó sin problemas con el Ultimate y ahora también con el Home basic.

Puedes probar la instalación de mi ActiveX aquí: http://www.devalvr.com/install

Al instalar el sistema he seguido todos los pasos normales y al final me ha creado una cuenta de Administrador, con la que siempre me inicia, sin tener que iniciar en modo seguro. Tengo la ultima versión Release Candidate que salió, que te pregunta qué versión quieres instalar. ¿Hay diferencias con una Home Basic normal? ¿O quizás tiene que ver que mi .ocx está firmado?

un saludo
Título: Re: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: [EX3] en 06 de Febrero de 2007, 09:08:56 PM
Cita de: "fiero"Me has hecho instalar la versión home basic solo para comprobar esto ;) . La instalación de mi ActiveX me funcionó sin problemas con el Ultimate y ahora también con el Home basic.

Puedes probar la instalación de mi ActiveX aquí: http://www.devalvr.com/install
Extraño por que anoche mientras escribia este post volvi a hacer pruebas, por si me equivoque en algun paso (ahi fue cuando descubri el comando del menu contextual "Ejecutar como administrador") y ni aun asi logre ejecutar un registro como usuario con regsvr32 ni por linea de comandos ni mediante un BAT, que al fin y al cabo es lo mismo. Sin embargo ejecutando mi herramienta de registro con el comando "Ejecutar como administrador" si funciono :?

Cita de: "fiero"Al instalar el sistema he seguido todos los pasos normales y al final me ha creado una cuenta de Administrador, con la que siempre me inicia, sin tener que iniciar en modo seguro.
A mi la instalacion por defecto me creo una cuenta de usuario, dado que para hacer muchas acciones como copiar archivos en el directorio sistema por ejemplo me pide confirmarcion de administrador, cosa que en modo seguro no lo hace. Lo que si es cierto es que se puede asignar los privilegios de administrador a una cuenta de usuario configurandolo desde el panel de administracion de usuarios y estos problemas desaparecerian. Yo estoy intentando que se puedan hacer estos pasos desde una cuenta de usuario si es que en verdad se puede, si no tocara hacerlo desde instaladores como comenta el articulo de la MSDN.

Cita de: "fiero"Tengo la ultima versión Release Candidate que salió, que te pregunta qué versión quieres instalar. ¿Hay diferencias con una Home Basic normal? ¿O quizás tiene que ver que mi .ocx está firmado?
Mi instalacion tambien me permitia instalar cualquier version de las 6 si no se le indicaba una clave de instalacion concreta. Esta instalacion es la de la version Release Candidate? Ahora me has dejado con la duda :D

Pues la verdad, si hay diferencia con una Home Basic no tengo ni idea, yo instale esta version de las 6 dado que al instalarlo en una maquina virtual no queria que se ejecutara malamente, luego aparte queria hacer las pruebas sobre una version de "baja gama" dado que pienso que si funciona en esta deberia funcionar en las siguientes mas altas, o quizas me equivoque y debiera haberlo hecho al reves. Si me hago con un disco duro extra haria una instalacion real de la edicion Business o la Ultimate.

Sobre que el ActiveX tenga que estar firmado o no para permitir su registro en el sistema, lo tengo en duda de si es necesario o no. Si recuerdo que una de las veces que en sesion de usuario logre que casi registrara mi libreria regsvr32 me devolvio un error de que no encontraba el punto de entrada del componente (DLLRegisterServer()) pero no se si esto se debe a si esta o no firmado. Ya que lo comentas, que se necesita para firmar un ActiveX? y dicho esto tambien un ejecutable (y asi evitar el mensajito tipico de si permites ejecutar el programa o no).

Por cierto, si tuvieras tiempo y me pudieras hacer el favor, ya que tienes Vista en una instalacion real, podrias descargar la distro de la dx_lib32 y probar los tutoriales de la clase dx_GFX? Es simplemente para confirmar si existe algun error en las rutinas de dicha clase, que en principio no deberia haberlos :)

Salu2...

P.D.: Un detalle que me di cuenta tambien que al menos ami me pasa. No cargan los archivos de ayuda en formato *.chm. Se abre el visor de ayuda pero no muestra el contenido con un error 404 como si no encontrara el archivo html del articulo al intentar visualizarlo. Si te bajas la dx_lib32 me gustaria que intentaras abrir la documentacion, a ver si a ti te carga bien.
Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: fiero en 07 de Febrero de 2007, 07:38:45 PM
No he podido instalar tu componente en mi sesión, me da el error 53. Sin embargo sí puedo instalar el mio. Hay una cosa diferente entre los dos ejecutables, en el mio sale un escudo en el icono, el mismo escudo que aparece en el menu, en la opción "Ejecutar como administrador". Ese escudo no forma parte de mi icono y no sé por qué sale, ¿quizás mi EXE se ejecuta siempre como administrador?

Otra diferencia puede ser que mi ActiveX es un OCX y el tuyo un DLL, pero no sé si influirá en algo.

He probado a firmar tu EXE y tu DLL pero sigue sin instalarse (error 53), y tampoco sale el escudo en el logo.

El OCX está como resource dentro del ejecutable, se copia en el sistema y se registra con esto, creo que tu harás algo parecido:

int CInstallDlg::RegistrarDLL(char *fichero,bool registrar)
{
int error=1;
HRESULT (STDAPICALLTYPE * lpDllEntryPoint)(void);

if (!FAILED(OleInitialize(NULL)))
{
SetErrorMode(SEM_FAILCRITICALERRORS);       // Make sure LoadLib fails.
// Load the library.
HINSTANCE hLib = LoadLibraryEx(fichero, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
if (hLib >= (HINSTANCE)HINSTANCE_ERROR)
{
// Find the entry point.
(FARPROC&)lpDllEntryPoint = GetProcAddress(hLib, registrar?"DllRegisterServer":"DllUnregisterServer");
if (lpDllEntryPoint)
{
// Call the entry point.
if (!FAILED((*lpDllEntryPoint)()))
{
error=0;
}
}
FreeLibrary(hLib);
}
OleUninitialize();
}
return(error);
}


Para firmar un DLL o EXE se necesita un certificado de firma, yo me compré uno hace un mes aqui http://www.instantssl.com por 99$, ahor han subido a 179€ :shock:

un saludo
Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: [EX3] en 07 de Febrero de 2007, 10:03:21 PM
Cita de: "fiero"No he podido instalar tu componente en mi sesión, me da el error 53. Sin embargo sí puedo instalar el mio. Hay una cosa diferente entre los dos ejecutables, en el mio sale un escudo en el icono, el mismo escudo que aparece en el menu, en la opción "Ejecutar como administrador". Ese escudo no forma parte de mi icono y no sé por qué sale, ¿quizás mi EXE se ejecuta siempre como administrador?
(...)
He probado a firmar tu EXE y tu DLL pero sigue sin instalarse (error 53), y tampoco sale el escudo en el logo.
Ya me fije de algunos programas que ejecute en Vista que me aparecia el escudo en el icono, justamente los que no pedian confirmacion de administrador. Tienes tu EXE firmado o certificado tambien?

Cita de: "fiero"Otra diferencia puede ser que mi ActiveX es un OCX y el tuyo un DLL, pero no sé si influirá en algo.
Se que hay ciertas diferencias en cuanto a temas de registro donde un OCX en ciertas circunstancias se autoregistra solo mientras que una DLL ActiveX siempre hay que registrarla. Por lo demas ni idea.

Cita de: "fiero"El OCX está como resource dentro del ejecutable, se copia en el sistema y se registra con esto, creo que tu harás algo parecido
Yo utilizo una declaracion de la API que en una sola llamada puedes registrar o des-registrar un componente, este (http://www.canalvisualbasic.net/forum/forum_posts.asp?TID=26171) metodo. Pero igual, si no se tienen privilegios de administrador este metodo devuelve error, lo que no me explico aun es por que lanza un error 53 de archivo no encontrado cuando yo tengo programado un cuadro de mensaje concreto para cuando no se logra hacer registro, tal y como se ve en enlace que te he puesto. Este detalle me ha despistado un poco, quizas sin privilegios de administrador esta API no es capaz de leer el componente que tiene que registrar y por eso se dispara la excepcion de la runtime de VB 6.0 (ya me toca meter un On Error :P)

Cita de: "fiero"Para firmar un DLL o EXE se necesita un certificado de firma, yo me compré uno hace un mes aqui http://www.instantssl.com por 99$, ahor han subido a 179€ :shock:
Echare un vistazo por si me interesara y me mereciese la pena firmar la dx_lib32. Aun asi, visto que con MoleBox (que tambien me cuesta 99$) me salto a la torera el sistema de privilegios de administrador de Windows al virtualizar las dependencias en el propio ejecutable, y con el lio de andar arrastrando el registro de componentes en cada equipo, de esta manera me despreocupo en mis proyectos. A nivel personal me vale como solucion, pero no lo es para las personas que programen por su cuenta con mi libreria.

Salu2...
Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: fiero en 09 de Febrero de 2007, 12:34:06 AM
Cita de: "[EX3"]
Ya me fije de algunos programas que ejecute en Vista que me aparecia el escudo en el icono, justamente los que no pedian confirmacion de administrador. Tienes tu EXE firmado o certificado tambien?

¿Qué es certificado? Lo tengo firmado con un certificado digital. He visto que mi versión local, un visor .EXE, no tiene el escudo, y también está firmado igual que el instalador del plugin. Así que no sé que significa ese escudo ni por qué sale. Además, tambien sale si no firmo el instalador.

No creo que tenga importancia, me he fijado en que algunos instaladores no lo tienen ese escudo, como el de QuickTime.

La única diferencia que he visto con mi instalador firmado o sin firmar es que aparece un mensaje diferente: "Se va a ejecutar un programa de ... ¿Confia usted en ...?" o "Se va a ejecutarun programa ... de un editor desconocido...". Los dos funcionan perfectamente, así que no te merece la pena firmar tu dll. Yo más que nada lo necesito para que la gente se instale el CAB a través del navegador.

saludos





Cita de: "fiero"Otra diferencia puede ser que mi ActiveX es un OCX y el tuyo un DLL, pero no sé si influirá en algo.
Se que hay ciertas diferencias en cuanto a temas de registro donde un OCX en ciertas circunstancias se autoregistra solo mientras que una DLL ActiveX siempre hay que registrarla. Por lo demas ni idea.

Cita de: "fiero"El OCX está como resource dentro del ejecutable, se copia en el sistema y se registra con esto, creo que tu harás algo parecido
Yo utilizo una declaracion de la API que en una sola llamada puedes registrar o des-registrar un componente, este (http://www.canalvisualbasic.net/forum/forum_posts.asp?TID=26171) metodo. Pero igual, si no se tienen privilegios de administrador este metodo devuelve error, lo que no me explico aun es por que lanza un error 53 de archivo no encontrado cuando yo tengo programado un cuadro de mensaje concreto para cuando no se logra hacer registro, tal y como se ve en enlace que te he puesto. Este detalle me ha despistado un poco, quizas sin privilegios de administrador esta API no es capaz de leer el componente que tiene que registrar y por eso se dispara la excepcion de la runtime de VB 6.0 (ya me toca meter un On Error :P)

Cita de: "fiero"Para firmar un DLL o EXE se necesita un certificado de firma, yo me compré uno hace un mes aqui http://www.instantssl.com por 99$, ahor han subido a 179€ :shock:
Echare un vistazo por si me interesara y me mereciese la pena firmar la dx_lib32. Aun asi, visto que con MoleBox (que tambien me cuesta 99$) me salto a la torera el sistema de privilegios de administrador de Windows al virtualizar las dependencias en el propio ejecutable, y con el lio de andar arrastrando el registro de componentes en cada equipo, de esta manera me despreocupo en mis proyectos. A nivel personal me vale como solucion, pero no lo es para las personas que programen por su cuenta con mi libreria.

Salu2...[/quote]
Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: [EX3] en 09 de Febrero de 2007, 01:37:30 AM
Cita de: "fiero"Además, tambien sale si no firmo el instalador.
(...)
No creo que tenga importancia, me he fijado en que algunos instaladores no lo tienen ese escudo, como el de QuickTime.
En vista segun recuerdo haber leido los programas de instalacion, no todos (y tu ya has confirmado un caso), el sistema les activa una especie de cuenta de administrador cerrada para que el instalador maniobre sin problemas desde cuentas de usuario. Esto lo lei en el enlace que puse antes de la MSDN Magazine. Se basa en leer ciertos metadatos de los binarios de instalacion para determinar si se trata de un instalador o no. ¿Que instalador usas? Quizas no todos los sistemas de instalacion son identificados por Vista correctamente y el que tu usas si lo es, me supongo que por eso te aparece el escudo.

Pues si bien los instaladores serian una buena solucion para distribuir la dx_lib32, como antaño hice antes de la version 2.0, deberia hacer la prueba, aunque este metodo lo abandone en cuanto publique la 2.0 para que el usuario pudiera instalar manualmente la libreria a su antojo y asi tener a mano el binario en vez tener que ir a buscarlo al directorio sistema.

Salu2...
Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: fiero en 09 de Febrero de 2007, 08:47:44 AM
Lo realmente extraño es que mi instalador es un EXE normal y corriente, creado a partir de un proyecto MFC al igual que mi visor EXE. Simplemente es una aplicación genérica con un cuadro de diálogo.

También probé a eliminar el .CAB de los resources, y compilar el instalador. Sigue saliendo el escudo en el logo. No entiendo qué es lo que usa Vista para determinar que mi programa es un instalador.

Bueno, ya encontré el problema. He copiado "dx7vb.dll" y "dx8vb.dll" en el sistema y ahora tu instalador funciona correctamente. Incluso mejor que el mio, ya que no saca ningún mensaje de permisos. Parece ser que Vista pide permisos para copiar cosas pero no los pide para registrar cosas. Y también comprueba las dependencias antes de registrar y da un error de "fichero no existe" si alguna dependencia no existe.

Los ejemplos de GFX no me funciona ninguno. Todos cascan al salir , excepto el 1 que no casca, y el 6 y 8 que dan "Runtime error 9: Subscript out of range". En todos aparece la ventana en blanco, excepto en el 7 que aparece la lista, pero con todos los valores a 0, y ningun elemento en el combo.

saludos!
Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: [EX3] en 10 de Febrero de 2007, 02:31:01 AM
Cita de: "fiero"Los ejemplos de GFX no me funciona ninguno. Todos cascan al salir , excepto el 1 que no casca, y el 6 y 8 que dan "Runtime error 9: Subscript out of range". En todos aparece la ventana en blanco, excepto en el 7 que aparece la lista, pero con todos los valores a 0, y ningun elemento en el combo.
Me acabas de matar con esto :lol: Probastes si en XP te funcionan? Como antaño recuerdo que tuvistes problemas con la clase de sonido en versiones anteriores, y no fuistes el unico, quizas venga por otro camino el tema de los errores.

Acabo de encontrar un disco duro entre el resto del hardware que tenia guardado y si no da problemas voy a intentar hacer una instalacion limpia del Vista para intentar ver si logro encontrar las incompatibilidades de mi libreria.

Salu2...
Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: fiero en 10 de Febrero de 2007, 07:38:18 AM
Ten cuidado, yo tenía un XP de pruebas y al instalar el Vista en la segunda partición del disco duro ya no pude arrancar con XP. Si tienes algo en el disco principal desenchufalo, no te vaya a joder el arranque.

He probado tus ejemplos en mi XP de trabajo y no me funcionan muy bien. Creo que lo que no me funciona es algo de las texturas. El ejemplo 1 y 6 funcionan correctamente. El 7 se queda bloqueado recopilando info y acabo por cerrarlo. Los demás cascan al salir (creo que son todos los que utilizan texturas) con el famoso 0xC0000005 Access violation en MSVBVM60.DLL.

Veo que al ejecutar los ejemplos aparece una ventana pequeña en blanco, y luego se centra, se agranda y aparece con fondo negro, despues de iniciar el modo de video. En el XP la inicialización me la hace bien, en Vista se me quedaban todos los ejemplos con la ventana inicial, en blanco.

El equipo del XP es un iMac dual core, ATI mobility radeon X1600.

Oye, acabo de pensar en lo del Vista, viene con DX preinstaladas, pero le faltan "dx7vb.dll" y "dx8vb.dll" , menuda cagada ¿no?
Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: tewe76 en 10 de Febrero de 2007, 08:55:46 AM
No quiero manchar este hilo de dx_lib32, pero tampoco creo que merezca la pena crear uno nuevo. Simplemente es que estoy un poco perplejo  :shock: . En otro hilo hace tiempo, ¿no llegamos ~ a la conclusión de que "todo" funcionaría bien en Vista? Desde un punto de vista egoísta (no, esta frase no es un chiste malo ;)), fiero, ¿podrías probar si el Fairy Match te instala/funciona bien? (link en mi firma)
Gracias, y perdón por el OT  :oops:
Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: [EX3] en 10 de Febrero de 2007, 07:10:48 PM
Cita de: "fiero"Ten cuidado, yo tenía un XP de pruebas y al instalar el Vista en la segunda partición del disco duro ya no pude arrancar con XP. Si tienes algo en el disco principal desenchufalo, no te vaya a joder el arranque.
Gracias por el apunte, lo pense incluso aunque no lo hice, y weno, estoy a tiempo dado que no se por que el mismo dvd de instalacion que use para la maquina virtual me da error en mitad de la instalacion de cualquiera de las 6 ediciones de Vista que tengo, este (http://blogs.axosoft.com/hamids/archive/2006/11/19/2786.aspx) error en concreto, y no logro instalarlo (amen a esto y aprovechando el disco duro extra tambien comprobe que la version x86 de Mac OS X tampoco se lleva bien con los AMD :P)

Cita de: "fiero"He probado tus ejemplos en mi XP de trabajo y no me funcionan muy bien. Creo que lo que no me funciona es algo de las texturas. El ejemplo 1 y 6 funcionan correctamente. El 7 se queda bloqueado recopilando info y acabo por cerrarlo. Los demás cascan al salir (creo que son todos los que utilizan texturas) con el famoso 0xC0000005 Access violation en MSVBVM60.DLL.
Matarme todos :P Despues de leer lo remarcado en negrita acabo de recordar que antes de ponerme a meter las mejoras de la version posterior a la actual de la web, tras realizar una comprobacion en los tutoriales esta tambien me dio problemas al ejecutar los tutoriales graficos, exactamente los mismos errores que a ti y en los mismos tutoriales, problema que solucione recompilando los tutoriales a la nueva version. Se ve que por mas que lo intento no logro mantener compatibilidad binaria correcta. Acabo de subir una compilacion de la 2.1.191 sin terminar, pero funcional, que a mi al menos no me da problemas con los tutoriales graficos, para que vuelvas a probar cuando puedas y asi confirmar si realmente era ese el problema :) Es una distro completa con los tutoriales incluidos:

dx_lib32v21191beta.rar (http://dxlib32.se32.com/private/dx_lib32v21191beta.rar) (2.45 MB)

Por cierto, no me has dicho aun si te dio problemas el archivo CHM de la documentacion, a mi al menos en Vista cualquier archivo de ayuda *.CHM no abre ninguno.

Cita de: "fiero"Veo que al ejecutar los ejemplos aparece una ventana pequeña en blanco, y luego se centra, se agranda y aparece con fondo negro, despues de iniciar el modo de video. En el XP la inicialización me la hace bien, en Vista se me quedaban todos los ejemplos con la ventana inicial, en blanco.
dx_lib32 lo que hace es tomar la ventana de destino de dibujo y este como este incialmente la adapta al modo de video que se le indica en los parametros de inicio, y como al renderizar no le indico color de fondo este lo limpia con color negro, de ahi que veas esa transicion de blanco a negro el fondo a la vez que se redimensiona y centra la ventana.

Cita de: "fiero"El equipo del XP es un iMac dual core, ATI mobility radeon X1600.
Eres la 2º persona que conozco que se instala el XP en un Mac :) Amen de esto, no creo que la tarjeta tuviera que dar problemas ya que dx_lib32 no requiere florituras avanzadas como shaders ni nada por el estilo.

Cita de: "fiero"Oye, acabo de pensar en lo del Vista, viene con DX preinstaladas, pero le faltan "dx7vb.dll" y "dx8vb.dll" , menuda cagada ¿no?
Ya me di cuenta, se ven que no quieren que porte mi libreria a esta version? :P :lol: De ahi que comentara mas arriba que incluiria estas librerias en la proxima version de la dx_lib32 para que la utilidad las copie e instale automaticamente.

Cita de: "tewe76"En otro hilo hace tiempo, ¿no llegamos ~ a la conclusión de que "todo" funcionaría bien en Vista?
En nuevas versiones de Windows todo siempre es un supuesto, nunca des nada por hecho ;) Al menos si pude comprobar que lo que es Visual Basic 6.0 como tal si funciona sin dar problemas en Vista, otra cosa es que nuestros programas metan la zarpa en rincones privados del sistema para hacer cosas impensables para el propio lenguaje (dx_lib32 esta mas apoyado sobre el API de Windows que sobre la propia runtime de VB 6.0 para llevar a cabo la mayor parte de sus tareas)

Cita de: "tewe76"Desde un punto de vista egoísta (no, esta frase no es un chiste malo ;)), fiero, ¿podrías probar si el Fairy Match te instala/funciona bien? (link en mi firma)
Si no tira de Direct3D te lo puedo probar yo en la maquina virtual con mucho gusto.

Salu2...

P.D.:
Cita de: "tewe76"Gracias, y perdón por el OT  :oops:
Nada hombre, si con ello logramos asegurarnos de que nuestro trabajo funciona en Vista no hay mal que por bien no venga ;)
Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: tewe76 en 10 de Febrero de 2007, 07:23:58 PM
CitarSi no tira de Direct3D te lo puedo probar yo en la maquina virtual con mucho gusto.
Pues utiliza sólo el DDraw de DX7, no sé si éso es D3D, supongo que no, así que si me lo pruebas, pues perfecto :) . De todas maneras si fiero lo puede probar en una máquina real, pues me quedo más tranquilo.
Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: [EX3] en 11 de Febrero de 2007, 03:33:23 AM
Cita de: "tewe76"Pues utiliza sólo el DDraw de DX7, no sé si éso es D3D, supongo que no, así que si me lo pruebas, pues perfecto :)
DirectDraw no es aceleracion 3D asi que la maquina virtual lo soporta a la perfeccion (y si no que me lo digan a mi que resucite el Worms 2 en el VMware :)). En cuanto tenga un rato lo testeo ;)

Salu2...
Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: fiero en 14 de Febrero de 2007, 09:28:14 AM
Cita de: "tewe76"En otro hilo hace tiempo, ¿no llegamos ~ a la conclusión de que "todo" funcionaría bien en Vista? Desde un punto de vista egoísta (no, esta frase no es un chiste malo ;)), fiero, ¿podrías probar si el Fairy Match te instala/funciona bien?

Hola tewe76,

Mi programa funciona perfectamente sin ninguna modificación, la versión ejecutable, el plugin para IE y el plugin para Firefox. También he probado el Fairy Match y no hay ningún problema. Quizás tengan más problemas otros programas con dependencias como los de EX3 que están en VB, ya veremos.


EX3, he probado tu RAR beta y me funciona perfectamente en mi XP (iMac). Ahora en el Vista no me da fallos, pero no pasa de la pequeña ventana en blanco. El tutorial 7 solo muestra la memoria total y disponible, lo demás todo a 0 y el combo vacío.

El CHM me ha funcionado perfectamente en Vista.

saludos!

PD: Estoy muy contento con mi XP en el iMac. No comento nada más que luego esto se llena de flames ;)
Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: [EX3] en 14 de Febrero de 2007, 10:08:22 PM
Cita de: "fiero"EX3, he probado tu RAR beta y me funciona perfectamente en mi XP (iMac). Ahora en el Vista no me da fallos, pero no pasa de la pequeña ventana en blanco. El tutorial 7 solo muestra la memoria total y disponible, lo demás todo a 0 y el combo vacío.
Me esta empezando a quemar el puñetero Vista. De dependencias no creo que venga el tema dado que usa las minimas de VB 6.0 (su runtime) y los COM para enlazar con DirectX (que funcionan dado que los tutoriales no dan problemas al crear los Devices). Lo que mas me fastidia es no poder hacer una instalacion real de Vista en mi maquina para poder buscar el problema :?

Cita de: "fiero"El CHM me ha funcionado perfectamente en Vista.
Genial, a mi no me llego abrir ninguno. Ya no se si es que me vacila Vista o es que tengo la suerte mas fea del mundo.

fiero, sin animos de ocupar mas tu tiempo, cuando llegue a casa quiero subir una version del mi motor a la que le añadi todas las dependencias para que la pruebes, ya que esta me dio menos problemas inclusive que los tutoriales del RAR. Luego te cuento.

Salu2...

P.D.: tewe76 no pude probar tu juego en la maquina virtual con Vista dado que se me ha fastidiado la imagen virtual del disco duro donde lo tenia instalado.
Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: [EX3] en 15 de Febrero de 2007, 12:43:14 AM
Cita de: "[EX3"]fiero, sin animos de ocupar mas tu tiempo, cuando llegue a casa quiero subir una version del mi motor a la que le añadi todas las dependencias para que la pruebes, ya que esta me dio menos problemas inclusive que los tutoriales del RAR. Luego te cuento.
Aqui te dejo el enlace de descarga: tlsa-engine_0.1.94.rar (http://dxlib32.se32.com/private/tlsa-engine_0.1.94.rar) (5.89 Mb)

Cuando tengas un hueco lo pruebas y me dices si al menos te muestra algo en la ventana, ya que como te dije, en su dia a mi el motor me estuvo funcionando mientras que los tutoriales no. Gracias.

Salu2...
Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: tewe76 en 15 de Febrero de 2007, 08:50:05 AM
CitarP.D.: tewe76 no pude probar tu juego en la maquina virtual con Vista dado que se me ha fastidiado la imagen virtual del disco duro donde lo tenia instalado.

Vale, EX3. Gracias de todas formas, no te preocupes.
Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: fiero en 15 de Febrero de 2007, 10:20:01 AM
Cita de: "[EX3"]Aqui te dejo el enlace de descarga: tlsa-engine_0.1.94.rar (http://dxlib32.se32.com/private/tlsa-engine_0.1.94.rar) (5.89 Mb)

Cuando tengas un hueco lo pruebas y me dices si al menos te muestra algo en la ventana, ya que como te dije, en su dia a mi el motor me estuvo funcionando mientras que los tutoriales no. Gracias.

Se me queda en XP y Vista en "Utiliza las flechas para navegar por las escenas...". ¿Que hay que hacer para seguir?

En el XP esa pantalla aparece "quemada" como si se hubiera subido el gamma. He capturado la pantalla con "Imp Pant" y me la captura con los colores correctos, así que parece un error de gamma en el fullscreen.

un saludo
Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: [EX3] en 15 de Febrero de 2007, 08:32:21 PM
Cita de: "fiero"Se me queda en XP y Vista en "Utiliza las flechas para navegar por las escenas...". ¿Que hay que hacer para seguir?
La compilacion actual del motor esta preparada para que si el nivel contiene varias escenas se pueda navegar por ellas a traves de las flechas de direcciones del bloque numerico. Por ahora el prototipo solo representa las escenas del nivel. Como el nivel de prueba que corre en este test solo tiene una escena no se puede navegar como tal en el nivel. Dicho esto, en Vista te ha funcionado? Dame una alegria, please :D

Cita de: "fiero"En el XP esa pantalla aparece "quemada" como si se hubiera subido el gamma. He capturado la pantalla con "Imp Pant" y me la captura con los colores correctos, así que parece un error de gamma en el fullscreen.
Ni idea, el gamma no lo he tocado desde que programaba en DirectDraw (no me preguntes pero no me hice con el en Direct3D8 :lol:) por lo que dx_lib32 no lo maneja. Si veo que el tema del gamma fuese necesario para ser regulado en otras maquinas como en tu caso tendre que intentar implementarlo en dx_lib32.

Salu2...
Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: fiero en 15 de Febrero de 2007, 09:44:25 PM
Sí, en vista sí me funciona, y se ve bien. Le he sacado una foto a mi monitor para que veas lo que pasa en el XP. Si imprimo pantalla la captura sale con los colores correctos, lo cual es más mosqueante. Creo que haces un fade-in para mostrar esta pantalla, pues lo que yo veo es como los colores se van "sumando" hasta que se quedan la mayoría blancos.

(http://www.devalvr.com/fiero/tlsa.jpg)

regards!
Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: [EX3] en 16 de Febrero de 2007, 12:18:16 AM
Cita de: "fiero"Se me queda en XP
Aclarame esto, please. De camino a casa le estuve dando vueltas a esto que lei desde la academia y me quedo la duda. Esto quiere decir que ahora no te ejecuta en XP? :lol:

Cita de: "fiero"Sí, en vista sí me funciona, y se ve bien.
Genial, entonces puede ser motivo de que los tutoriales fallen en algun detalle concreto o necesiten ser recompilados (no es la primera vez que me ocurre algo semejante con versiones anteriores de dx_lib32)

Cita de: "fiero"Creo que haces un fade-in para mostrar esta pantalla, pues lo que yo veo es como los colores se van "sumando" hasta que se quedan la mayoría blancos.
El efecto de "fade-in" que hago no es mas que una caja de primitvas (un quad con dos triangulos) de color negro al que le voy disminuyendo el valor de canal alpha del color hasta que este es 0 y entonces no se dibuja el quad, por lo que no deberia afectar en absoluto al resultado final de la escena. No se exactamente por que pasara esto pero si modificando el gamma se puede corregir tendre que implementarlo.

De momento creo que podria dar por valido el funcionamiento de dx_lib32 en Vista, y por lo tanto "parcialmente" compatible con esta version de Windows :)

fiero, muchas gracias por tomarte tiempo realizando las pruebas, no solo te has ganado un lugar en el apartado de agradecimientos para la proxima version de la libreria si no que me has quitado todo un peso de encima con todo este tedioso tema de dependencias y compatibilidades entre versiones. De veras, muchas gracias :D

Salu2...

P.D.: Da gusto ver correr un programa desarrollado en VB 6.0 sobre un iMac, aunque sea desde Windows :lol:
Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: fiero en 16 de Febrero de 2007, 11:30:50 AM
Cita de: "[EX3"]
Cita de: "fiero"Se me queda en XP
Aclarame esto, please. De camino a casa le estuve dando vueltas a esto que lei desde la academia y me quedo la duda. Esto quiere decir que ahora no te ejecuta en XP? :lol:

Es que a veces escribo de culo. Mi frase era "Se me queda en XP y Vista en 'Utiliza las flechas para navegar por las escenas...'. ¿Que hay que hacer para seguir? " pero debería haber escrito algo más claro como:

En los dos sistemas el programa se queda en una pantalla en la que pone "Utiliza las flechas para navegar por las escenas..."

Acerca del Mac, yo utilizo BootCamp para arrancar el XP, pero he leido que el Parallels es más impresionante, arrancando Windows de forma nativa en una ventana de MacOS. Incluso se pueden copiar ficheros de uno a otro arrastrando y soltando en la ventana... habrá que probarlo.

saludos
Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: [EX3] en 16 de Febrero de 2007, 12:53:17 PM
Cita de: "fiero"Acerca del Mac, yo utilizo BootCamp para arrancar el XP, pero he leido que el Parallels es más impresionante, arrancando Windows de forma nativa en una ventana de MacOS. Incluso se pueden copiar ficheros de uno a otro arrastrando y soltando en la ventana... habrá que probarlo.
Habia oido hablar del BootCamp por que tuvimos un cliente al que ibamos con idea de instalarselo (la primera persona que conoci que iba a meter XP en un iBook) y de otra alternativa para ello, pero del Parallels no habia oido hablar. Suena mejor que una VMware por lo que veo, con aceleracion por hardware y todo :D

Dios, cada dia que pasa quiero mas un iBook :lol:

Salu2...
Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: [EX3] en 16 de Febrero de 2007, 05:27:12 PM
~ Off-Topic ~
Cita de: "[EX3"]P.D.: tewe76 no pude probar tu juego en la maquina virtual con Vista dado que se me ha fastidiado la imagen virtual del disco duro donde lo tenia instalado.
Como logre reparar la imagen del Vista (siempre suelo guardar una copia las maquinas virtuales por suerte) y no habia probado aun tu juego, aparte de que quede en testearlo sobre Vista aun habiendolo hecho ya fiero, pues aproveche para ello.

Instalar se instalo sin problemas, es mas, veo que el instalador genera InnoSetup es reconocido por Vista y automaticamente le otorga  privilegios de administrador (el icono del instalador aparece con el escudo de seguridad) :)

Al ejecutarlo se incia bien pero a mitad de carga me salta un error 5 - Llamada o argumentos no validos, tanto si lo ejecuto como usuario o como administrador (comando Ejecutar como Administrador del menu contextual). Te adjunto una captura:

(http://img130.imageshack.us/img130/1097/tapazaparuntimeerror5hm2.th.png) (http://img130.imageshack.us/my.php?image=tapazaparuntimeerror5hm2.png)

A fiero le funciono segun cuenta, por lo que o bien podria ser problema de la VMware, cosa mas que posible, o bien que tengas algun cabo no bien atado y que depende el equipo pueda o no fallar. Realizas alguna llamada al registro de Windows por ejemplo o algo que Vista a nivel de usuario no permitiese?

Salu2...

P.D.: Se echa menos mas gente con Vista instalado para hacer de betatesters :D
~ Off-Topic ~
Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: tewe76 en 16 de Febrero de 2007, 06:25:33 PM
Citaraparte de que quede en testearlo sobre Vista aun habiendolo hecho ya fiero,
No sabía que fiero lo había probado. ¡Gracias, fiero!

CitarInstalar se instalo sin problemas, es mas, veo que el instalador genera InnoSetup es reconocido por Vista y automaticamente le otorga privilegios de administrador (el icono del instalador aparece con el escudo de seguridad)
Ah, genial :)

CitarA fiero le funciono segun cuenta, por lo que o bien podria ser problema de la VMware, cosa mas que posible
Seguramente (¿u ojalá? :roll: ) será el VMware. No lo he comprobado al 100%, pero durante la pantalla de carga básicamente cargo-proceso imágenes y sonidos (ambas cosas las hace también en la primera "minipantalla de carga", así que no puede ser éso). Lo único un poco "extraño" es que aquí hago un "Dir", pero vamos, no creo que sea por éso tampoco.

Bueno, si dices que a fiero le ha funcionado, seguiré considerando que FM funciona en Vista.

¡Gracias a los dos por las molestias! :)
Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: [EX3] en 16 de Febrero de 2007, 07:49:06 PM
Cita de: "tewe76"
Citaraparte de que quede en testearlo sobre Vista aun habiendolo hecho ya fiero,
No sabía que fiero lo había probado. ¡Gracias, fiero!
Ya me hacias dudar y todo :P
Cita de: "fiero"
Cita de: "tewe76"En otro hilo hace tiempo, ¿no llegamos ~ a la conclusión de que "todo" funcionaría bien en Vista? Desde un punto de vista egoísta (no, esta frase no es un chiste malo ;)), fiero, ¿podrías probar si el Fairy Match te instala/funciona bien?

Hola tewe76,

Mi programa funciona perfectamente sin ninguna modificación, la versión ejecutable, el plugin para IE y el plugin para Firefox. También he probado el Fairy Match y no hay ningún problema. Quizás tengan más problemas otros programas con dependencias como los de EX3 que están en VB, ya veremos.

Cita de: "tewe76"Seguramente (¿u ojalá? :roll: ) será el VMware. No lo he comprobado al 100%, pero durante la pantalla de carga básicamente cargo-proceso imágenes y sonidos (ambas cosas las hace también en la primera "minipantalla de carga", así que no puede ser éso). Lo único un poco "extraño" es que aquí hago un "Dir", pero vamos, no creo que sea por éso tampoco.

Bueno, si dices que a fiero le ha funcionado, seguiré considerando que FM funciona en Vista.
Tocas algun directorio externo al de tu aplicacion? Estas cosas le pueden cabrear al UAC de Vista y cerrarte el paso, lo que se podria traducir en un error de la runtime de VB al imposibilitarle la accion en concreto aun siendo correcta programaticamente, no se si me expplico. La utilidad de registro de dx_lib32 en modo usuario bajo Vista lanza un error 53 alegando que no existe la DLL cuando esta esta presente junto al ejecutable. Yo al menos intentaria asegurarme al 100%. A ver si se pasa fiero y nos cuenta algo acerca de esto.

Salu2...
Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: tewe76 en 16 de Febrero de 2007, 08:34:20 PM
Jo, pues sí que es verdad que fiero dijo que había probado el FM. Me debí saltar ese post  :roll:

El Dir lo hace sobre subcarpetas del juego, así como la carga de todos los archivos. No sé, lo dicho, por ahora considero que funciona bien en Vista.
Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: fiero en 16 de Febrero de 2007, 09:23:19 PM
EX3, ya sé cual es el problema de los colores. Yo tengo mi escritorio a 1440x900, si al hacer pantalla completa me cambias la resolución, se cambian los valores de corrección y se saturan todos los colores. No sé por qué pasa esto, porque yo no he modificado nada de la tarjeta (es una ATI X1600) y todos los valores están por defecto.

Esto me recuerda a un problema que había con mi plugin. Algunos usuarios me decian que al cambiar a pantalla completa les cambiaban los colores. Por eso puse que la resolución por defecto del "fullscreen" fuera la misma que el escritorio.

saludos
Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: [EX3] en 17 de Febrero de 2007, 02:27:15 AM
Cita de: "tewe76"El Dir lo hace sobre subcarpetas del juego, así como la carga de todos los archivos. No sé, lo dicho, por ahora considero que funciona bien en Vista.
Si son subdirectorios del juego "ferPecto" por parte de Vista :) Entonces aceptamos Fairy Match como juego compatible con Vista :D
Aun asi seguire trasteando en la maquina virtual por si encuentro causa al error en cuestion.

Cita de: "fiero"EX3, ya sé cual es el problema de los colores. Yo tengo mi escritorio a 1440x900, si al hacer pantalla completa me cambias la resolución, se cambian los valores de corrección y se saturan todos los colores. No sé por qué pasa esto, porque yo no he modificado nada de la tarjeta (es una ATI X1600) y todos los valores están por defecto.
Curioso. Te pasa esto con otros programas en modo pantalla completa? Aun asi te hice caso y ya me hice con la forma, una de varias que encontre y entre ellas la mas sencilla, de trabajar con la correccion gamma en Direct3D8. Asi por lo menos, en estos casos se podria corregir la saturacion de colores mas o menos o eso creo.

Salu2...
Título: Confirmado: dx_lib32 es compatible con Windows Vista
Publicado por: [EX3] en 30 de Julio de 2007, 12:48:55 PM
Weno, al fin pude realizar personalmente pruebas de la dx_lib32 sobre Windows Vista en tiempo real, sin virtualizacion ni emulacion alguna, y decir que ha funcionado sin problemas, es mas, la prueba final fue en plena Campus Party en el concurso de competicion de 72h de desarrollo de videojuegos, pruebas realizadas tanto en la maquina del encargado de la competicion tanto como en mi MacBook con el Vista recien instalado.

Ya puedo confirmar que unicamente hay que tener en cuenta que DirectX 10, version que viene instalada con Vista, no incluye los ActiveX que hacen de puente entre DirectX 7 y 8 con Visual Basic 6.0 pero que una vez copiados al directorio de sistema y registrandolos dx_lib32 funciona igual que en XP. La proxima release de la libreria, que sera la ultima que desarrolle, vendra de nuevo en un instalador preparada para instalar estos ActiveX en Vista, sera a modo instalador redistribuible, osea, solo la dx_lib32 y los ActiveX de DirectX 7 y 8 para Visual Basic 6.0, documentacion y tutoriales vendran junto al instalador redistribuible en su paquete ZIP/RAR como hasta ahora.

Salu2...