In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Mi aplicaci

Foro de Xailer profesional en español
Responder
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

Mi aplicaci

Mensaje por Xevi »

Estoy con la version de Xailer 1.2a
Pues... MIS MISERIAS!!!... me encuentro que mi aplicación "grandota" no
corre en windows 98. Me ha llamado algún cliente que todavía dispone de
alguna terminal con Win98 y no me lo he creído!!! en los ordenadores que
tiene instalado XP corre como siempre, pero en Win98 NADA DE NADA... se pone
el mouse con el reloj de arena unos segundos y no hace nada!!!
He sacado el polvo de un Pentium133 con Win98 que tenía guardado... y mi
sorpresa ha sido que EL CLIENTE TIENE RAZÓN, como casi siempre!!!
He hecho alguna prueba, pero no puedo hallar a que se debe, supongo que por
tamaño... ¿puede ser???
Mirar... si no comprimo el ejecutable con UPX, me lanza el siguiente error.
"Error al iniciar el programa
El archivo MiAplicacion.EXE está
vinculado a un USER32.DLL:SetLayeredWindowAttributes de exportación que no
existe"
Y si comprimo el ejecutable con UPX, que es como lo tienen mis clientes, no
llega a ejecutar NADA de la aplicación, ni un simple MSGINFO() que he puesto
en la función de inicio de mi aplicación.
Estoy deseperado!!!
No se como puedo arreglar esta situación... Y mis clientes me van a
morder!!!
Tengo alguna aplicacin muuuuuy chiquitica... y esa si corre en Win98, por
eso me ha dado a pensar en el tamaño.... por lo visto el tamaño SI
IMPORTA!!!
Gracias por vuestro tiempo.
Un Saludo,
Xevi.
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9457
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Mi aplicaci

Mensaje por ignacio »

Xevi,
¿Estas utilizando la transparencia en algún formulario?
Gracias
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Xevi" <xevicomas@gmail.com> escribió en el mensaje
news:[email=45ec658e@news.xailer.com...]45ec658e@news.xailer.com...[/email]
> Estoy con la version de Xailer 1.2a
>
> Pues... MIS MISERIAS!!!... me encuentro que mi aplicación "grandota" no
> corre en windows 98. Me ha llamado algún cliente que todavía dispone de
> alguna terminal con Win98 y no me lo he creído!!! en los ordenadores que
> tiene instalado XP corre como siempre, pero en Win98 NADA DE NADA... se
> pone el mouse con el reloj de arena unos segundos y no hace nada!!!
>
> He sacado el polvo de un Pentium133 con Win98 que tenía guardado... y mi
> sorpresa ha sido que EL CLIENTE TIENE RAZÓN, como casi siempre!!!
> He hecho alguna prueba, pero no puedo hallar a que se debe, supongo que
> por tamaño... ¿puede ser???
>
> Mirar... si no comprimo el ejecutable con UPX, me lanza el siguiente
> error.
>
> "Error al iniciar el programa
> El archivo MiAplicacion.EXE está
> vinculado a un USER32.DLL:SetLayeredWindowAttributes de exportación que no
> existe"
>
> Y si comprimo el ejecutable con UPX, que es como lo tienen mis clientes,
> no llega a ejecutar NADA de la aplicación, ni un simple MSGINFO() que he
> puesto en la función de inicio de mi aplicación.
>
> Estoy deseperado!!!
> No se como puedo arreglar esta situación... Y mis clientes me van a
> morder!!!
> Tengo alguna aplicacin muuuuuy chiquitica... y esa si corre en Win98, por
> eso me ha dado a pensar en el tamaño.... por lo visto el tamaño SI
> IMPORTA!!!
>
>
> Gracias por vuestro tiempo.
>
> Un Saludo,
> Xevi.
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9457
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Mi aplicaci

Mensaje por ignacio »

Xevi,
Compruebo que si funciona en Win98. Por lo tanto supongo que será porque
estás utilizando la transparencia de ventanas que Win98 no debe soportar.
Por favor, confirmamelo.
Gracias y un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:45ec67ec$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Xevi,
>
> ¿Estas utilizando la transparencia en algún formulario?
>
> Gracias
>
> --
> Ignacio Ortiz de Zúñiga
> http://www.xailer.com
>
>
> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
> news:[email=45ec658e@news.xailer.com...]45ec658e@news.xailer.com...[/email]
>> Estoy con la version de Xailer 1.2a
>>
>> Pues... MIS MISERIAS!!!... me encuentro que mi aplicación "grandota" no
>> corre en windows 98. Me ha llamado algún cliente que todavía dispone de
>> alguna terminal con Win98 y no me lo he creído!!! en los ordenadores que
>> tiene instalado XP corre como siempre, pero en Win98 NADA DE NADA... se
>> pone el mouse con el reloj de arena unos segundos y no hace nada!!!
>>
>> He sacado el polvo de un Pentium133 con Win98 que tenía guardado... y mi
>> sorpresa ha sido que EL CLIENTE TIENE RAZÓN, como casi siempre!!!
>> He hecho alguna prueba, pero no puedo hallar a que se debe, supongo que
>> por tamaño... ¿puede ser???
>>
>> Mirar... si no comprimo el ejecutable con UPX, me lanza el siguiente
>> error.
>>
>> "Error al iniciar el programa
>> El archivo MiAplicacion.EXE está
>> vinculado a un USER32.DLL:SetLayeredWindowAttributes de exportación que
>> no existe"
>>
>> Y si comprimo el ejecutable con UPX, que es como lo tienen mis clientes,
>> no llega a ejecutar NADA de la aplicación, ni un simple MSGINFO() que he
>> puesto en la función de inicio de mi aplicación.
>>
>> Estoy deseperado!!!
>> No se como puedo arreglar esta situación... Y mis clientes me van a
>> morder!!!
>> Tengo alguna aplicacin muuuuuy chiquitica... y esa si corre en Win98, por
>> eso me ha dado a pensar en el tamaño.... por lo visto el tamaño SI
>> IMPORTA!!!
>>
>>
>> Gracias por vuestro tiempo.
>>
>> Un Saludo,
>> Xevi.
>>
>>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
jose.luis
Mensajes: 1633
Registrado: Vie Oct 14, 2005 10:56 pm

Mi aplicaci

Mensaje por jose.luis »

Xevi,
Creo que son por las transparencias... que WIN98 no tiene.
Saludos,
José Luis Capel
"Xevi" <xevicomas@gmail.com> escribió en el mensaje
news:[email=45ec658e@news.xailer.com...]45ec658e@news.xailer.com...[/email]
> Estoy con la version de Xailer 1.2a
>
> Pues... MIS MISERIAS!!!... me encuentro que mi aplicación "grandota" no
> corre en windows 98. Me ha llamado algún cliente que todavía dispone de
> alguna terminal con Win98 y no me lo he creído!!! en los ordenadores que
> tiene instalado XP corre como siempre, pero en Win98 NADA DE NADA... se
> pone el mouse con el reloj de arena unos segundos y no hace nada!!!
>
> He sacado el polvo de un Pentium133 con Win98 que tenía guardado... y mi
> sorpresa ha sido que EL CLIENTE TIENE RAZÓN, como casi siempre!!!
> He hecho alguna prueba, pero no puedo hallar a que se debe, supongo que
> por tamaño... ¿puede ser???
>
> Mirar... si no comprimo el ejecutable con UPX, me lanza el siguiente
> error.
>
> "Error al iniciar el programa
> El archivo MiAplicacion.EXE está
> vinculado a un USER32.DLL:SetLayeredWindowAttributes de exportación que no
> existe"
>
> Y si comprimo el ejecutable con UPX, que es como lo tienen mis clientes,
> no llega a ejecutar NADA de la aplicación, ni un simple MSGINFO() que he
> puesto en la función de inicio de mi aplicación.
>
> Estoy deseperado!!!
> No se como puedo arreglar esta situación... Y mis clientes me van a
> morder!!!
> Tengo alguna aplicacin muuuuuy chiquitica... y esa si corre en Win98, por
> eso me ha dado a pensar en el tamaño.... por lo visto el tamaño SI
> IMPORTA!!!
>
>
> Gracias por vuestro tiempo.
>
> Un Saludo,
> Xevi.
>
>
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

Mi aplicaci

Mensaje por Xevi »

Ignacio,
Confirmado, son las transparencias.
Ahora bien, para miontar el Wrapper para que tenga en cuenta cuando es Win98
o superior... eso como sería???
Gracias.
Un Saludo,
Xevi.
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:45ec694a$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Xevi,
>
> Compruebo que si funciona en Win98. Por lo tanto supongo que será porque
> estás utilizando la transparencia de ventanas que Win98 no debe soportar.
> Por favor, confirmamelo.
>
> Gracias y un saludo,
>
> --
> Ignacio Ortiz de Zúñiga
> http://www.xailer.com
>
>
> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
> news:45ec67ec$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> Xevi,
>>
>> ¿Estas utilizando la transparencia en algún formulario?
>>
>> Gracias
>>
>> --
>> Ignacio Ortiz de Zúñiga
>> http://www.xailer.com
>>
>>
>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>> news:[email=45ec658e@news.xailer.com...]45ec658e@news.xailer.com...[/email]
>>> Estoy con la version de Xailer 1.2a
>>>
>>> Pues... MIS MISERIAS!!!... me encuentro que mi aplicación "grandota" no
>>> corre en windows 98. Me ha llamado algún cliente que todavía dispone de
>>> alguna terminal con Win98 y no me lo he creído!!! en los ordenadores que
>>> tiene instalado XP corre como siempre, pero en Win98 NADA DE NADA... se
>>> pone el mouse con el reloj de arena unos segundos y no hace nada!!!
>>>
>>> He sacado el polvo de un Pentium133 con Win98 que tenía guardado... y mi
>>> sorpresa ha sido que EL CLIENTE TIENE RAZÓN, como casi siempre!!!
>>> He hecho alguna prueba, pero no puedo hallar a que se debe, supongo que
>>> por tamaño... ¿puede ser???
>>>
>>> Mirar... si no comprimo el ejecutable con UPX, me lanza el siguiente
>>> error.
>>>
>>> "Error al iniciar el programa
>>> El archivo MiAplicacion.EXE está
>>> vinculado a un USER32.DLL:SetLayeredWindowAttributes de exportación que
>>> no existe"
>>>
>>> Y si comprimo el ejecutable con UPX, que es como lo tienen mis clientes,
>>> no llega a ejecutar NADA de la aplicación, ni un simple MSGINFO() que he
>>> puesto en la función de inicio de mi aplicación.
>>>
>>> Estoy deseperado!!!
>>> No se como puedo arreglar esta situación... Y mis clientes me van a
>>> morder!!!
>>> Tengo alguna aplicacin muuuuuy chiquitica... y esa si corre en Win98,
>>> por eso me ha dado a pensar en el tamaño.... por lo visto el tamaño SI
>>> IMPORTA!!!
>>>
>>>
>>> Gracias por vuestro tiempo.
>>>
>>> Un Saludo,
>>> Xevi.
>>>
>>>
>>
>>
>
>
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

Mi aplicaci

Mensaje por Xevi »

Según el Wrapper que JoseF dejó en este foro...
¿cómo modificarlo para llamar a SetLayeredWindowAttributes solo si estamos en una versión de Windows superior a Win98???
#pragma BEGINDUMP
#include "windows.h"
#include "xailer.h"
XA_FUNC( SETLAYEREDWINDOWATTRIBUTES )
{
if( VersionWindows > Windows98 )
hb_retl( SetLayeredWindowAttributes( (HWND) hb_parnl( 1 ), hb_parnl( 2 ), hb_parnl( 3 ), hb_parnl( 4 ) ) );
}
#pragma ENDDUMP
Gracias
Un Saludo,
Xevi.
"Xevi" <xevicomas@gmail.com> escribió en el mensaje news:45ec7032$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Ignacio,
>
> Confirmado, son las transparencias.
> Ahora bien, para miontar el Wrapper para que tenga en cuenta cuando es Win98
> o superior... eso como serí­a???
>
>
> Gracias.
>
> Un Saludo,
> Xevi.
>
>
> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
> news:45ec694a$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> Xevi,
>>
>> Compruebo que si funciona en Win98. Por lo tanto supongo que será porque
>> estás utilizando la transparencia de ventanas que Win98 no debe soportar.
>> Por favor, confirmamelo.
>>
>> Gracias y un saludo,
>>
>> --
>> Ignacio Ortiz de Zúñiga
>> http://www.xailer.com
>>
>>
>> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
>> news:45ec67ec$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>> Xevi,
>>>
>>> ¿Estas utilizando la transparencia en algún formulario?
>>>
>>> Gracias
>>>
>>> --
>>> Ignacio Ortiz de Zúñiga
>>> http://www.xailer.com
>>>
>>>
>>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>>> news:[email=45ec658e@news.xailer.com...]45ec658e@news.xailer.com...[/email]
>>>> Estoy con la version de Xailer 1.2a
>>>>
>>>> Pues... MIS MISERIAS!!!... me encuentro que mi aplicación "grandota" no
>>>> corre en windows 98. Me ha llamado algún cliente que todaví­a dispone de
>>>> alguna terminal con Win98 y no me lo he creí­do!!! en los ordenadores que
>>>> tiene instalado XP corre como siempre, pero en Win98 NADA DE NADA... se
>>>> pone el mouse con el reloj de arena unos segundos y no hace nada!!!
>>>>
>>>> He sacado el polvo de un Pentium133 con Win98 que tení­a guardado... y mi
>>>> sorpresa ha sido que EL CLIENTE TIENE RAZí“N, como casi siempre!!!
>>>> He hecho alguna prueba, pero no puedo hallar a que se debe, supongo que
>>>> por tamaño... ¿puede ser???
>>>>
>>>> Mirar... si no comprimo el ejecutable con UPX, me lanza el siguiente
>>>> error.
>>>>
>>>> "Error al iniciar el programa
>>>> El archivo MiAplicacion.EXE está
>>>> vinculado a un USER32.DLL:SetLayeredWindowAttributes de exportación que
>>>> no existe"
>>>>
>>>> Y si comprimo el ejecutable con UPX, que es como lo tienen mis clientes,
>>>> no llega a ejecutar NADA de la aplicación, ni un simple MSGINFO() que he
>>>> puesto en la función de inicio de mi aplicación.
>>>>
>>>> Estoy deseperado!!!
>>>> No se como puedo arreglar esta situación... Y mis clientes me van a
>>>> morder!!!
>>>> Tengo alguna aplicacin muuuuuy chiquitica... y esa si corre en Win98,
>>>> por eso me ha dado a pensar en el tamaño.... por lo visto el tamaño SI
>>>> IMPORTA!!!
>>>>
>>>>
>>>> Gracias por vuestro tiempo.
>>>>
>>>> Un Saludo,
>>>> Xevi.
>>>>
>>>>
>>>
>>>
>>
>>
>
>
--
jose.luis
Mensajes: 1633
Registrado: Vie Oct 14, 2005 10:56 pm

Mi aplicaci

Mensaje por jose.luis »

Xevi,
Ponlo en nivel PRG. Algo así­ (por ejemplo)
IF !XA_IsWin98()
SetLayered.....
ENDIF
Saludos,
José Luis Capel

"Xevi" <xevicomas@gmail.com> escribió en el mensaje news:[email=45ed1802@news.xailer.com...]45ed1802@news.xailer.com...[/email]
Según el Wrapper que JoseF dejó en este foro...
¿cómo modificarlo para llamar a SetLayeredWindowAttributes solo si estamos en una versión de Windows superior a Win98???
#pragma BEGINDUMP
#include "windows.h"
#include "xailer.h"
XA_FUNC( SETLAYEREDWINDOWATTRIBUTES )
{
if( VersionWindows > Windows98 )
hb_retl( SetLayeredWindowAttributes( (HWND) hb_parnl( 1 ), hb_parnl( 2 ), hb_parnl( 3 ), hb_parnl( 4 ) ) );
}
#pragma ENDDUMP
Gracias
Un Saludo,
Xevi.
"Xevi" <xevicomas@gmail.com> escribió en el mensaje news:45ec7032$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Ignacio,
>
> Confirmado, son las transparencias.
> Ahora bien, para miontar el Wrapper para que tenga en cuenta cuando es Win98
> o superior... eso como serí­a???
>
>
> Gracias.
>
> Un Saludo,
> Xevi.
>
>
> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
> news:45ec694a$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> Xevi,
>>
>> Compruebo que si funciona en Win98. Por lo tanto supongo que será porque
>> estás utilizando la transparencia de ventanas que Win98 no debe soportar.
>> Por favor, confirmamelo.
>>
>> Gracias y un saludo,
>>
>> --
>> Ignacio Ortiz de Zúñiga
>> http://www.xailer.com
>>
>>
>> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
>> news:45ec67ec$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>> Xevi,
>>>
>>> ¿Estas utilizando la transparencia en algún formulario?
>>>
>>> Gracias
>>>
>>> --
>>> Ignacio Ortiz de Zúñiga
>>> http://www.xailer.com
>>>
>>>
>>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>>> news:[email=45ec658e@news.xailer.com...]45ec658e@news.xailer.com...[/email]
>>>> Estoy con la version de Xailer 1.2a
>>>>
>>>> Pues... MIS MISERIAS!!!... me encuentro que mi aplicación "grandota" no
>>>> corre en windows 98. Me ha llamado algún cliente que todaví­a dispone de
>>>> alguna terminal con Win98 y no me lo he creí­do!!! en los ordenadores que
>>>> tiene instalado XP corre como siempre, pero en Win98 NADA DE NADA... se
>>>> pone el mouse con el reloj de arena unos segundos y no hace nada!!!
>>>>
>>>> He sacado el polvo de un Pentium133 con Win98 que tení­a guardado... y mi
>>>> sorpresa ha sido que EL CLIENTE TIENE RAZí“N, como casi siempre!!!
>>>> He hecho alguna prueba, pero no puedo hallar a que se debe, supongo que
>>>> por tamaño... ¿puede ser???
>>>>
>>>> Mirar... si no comprimo el ejecutable con UPX, me lanza el siguiente
>>>> error.
>>>>
>>>> "Error al iniciar el programa
>>>> El archivo MiAplicacion.EXE está
>>>> vinculado a un USER32.DLL:SetLayeredWindowAttributes de exportación que
>>>> no existe"
>>>>
>>>> Y si comprimo el ejecutable con UPX, que es como lo tienen mis clientes,
>>>> no llega a ejecutar NADA de la aplicación, ni un simple MSGINFO() que he
>>>> puesto en la función de inicio de mi aplicación.
>>>>
>>>> Estoy deseperado!!!
>>>> No se como puedo arreglar esta situación... Y mis clientes me van a
>>>> morder!!!
>>>> Tengo alguna aplicacin muuuuuy chiquitica... y esa si corre en Win98,
>>>> por eso me ha dado a pensar en el tamaño.... por lo visto el tamaño SI
>>>> IMPORTA!!!
>>>>
>>>>
>>>> Gracias por vuestro tiempo.
>>>>
>>>> Un Saludo,
>>>> Xevi.
>>>>
>>>>
>>>
>>>
>>
>>
>
>
--
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

Mi aplicaci

Mensaje por Xevi »

José Luis,
He probado de SOLO incluir el Wrapper sin hacer la llamada a la función y
por lo visto a nivel de PRG no puedo ponerlo, pues solo con que incluya esta
parte del wrapper ya no arranca la aplicación.
Por eso se me ocurre que si el Wrapper puede detectar si es una versión
superior a Win98 y hacer la llamada, luego si funcionaría.
Un Saludo,
Xevi.
"José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje
news:[email=45ed24c3@news.xailer.com...]45ed24c3@news.xailer.com...[/email]
Xevi,
Ponlo en nivel PRG. Algo así (por ejemplo)
IF !XA_IsWin98()
SetLayered.....
ENDIF
Saludos,
José Luis Capel
"Xevi" <xevicomas@gmail.com> escribió en el mensaje
news:[email=45ed1802@news.xailer.com...]45ed1802@news.xailer.com...[/email]
Según el Wrapper que JoseF dejó en este foro...
¿cómo modificarlo para llamar a SetLayeredWindowAttributes solo si estamos
en una versión de Windows superior a Win98???
#pragma BEGINDUMP
#include "windows.h"
#include "xailer.h"
XA_FUNC( SETLAYEREDWINDOWATTRIBUTES )
{
if( VersionWindows > Windows98 )
hb_retl( SetLayeredWindowAttributes( (HWND) hb_parnl( 1 ), hb_parnl(
2 ), hb_parnl( 3 ), hb_parnl( 4 ) ) );
}
#pragma ENDDUMP
Gracias
Un Saludo,
Xevi.
"Xevi" <xevicomas@gmail.com> escribió en el mensaje
news:45ec7032$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Ignacio,
>
> Confirmado, son las transparencias.
> Ahora bien, para miontar el Wrapper para que tenga en cuenta cuando es
Win98
> o superior... eso como sería???
>
>
> Gracias.
>
> Un Saludo,
> Xevi.
>
>
> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
> news:45ec694a$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> Xevi,
>>
>> Compruebo que si funciona en Win98. Por lo tanto supongo que será
porque
>> estás utilizando la transparencia de ventanas que Win98 no debe
soportar.
>> Por favor, confirmamelo.
>>
>> Gracias y un saludo,
>>
>> --
>> Ignacio Ortiz de Zúñiga
>> http://www.xailer.com
>>
>>
>> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
>> news:45ec67ec$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>> Xevi,
>>>
>>> ¿Estas utilizando la transparencia en algún formulario?
>>>
>>> Gracias
>>>
>>> --
>>> Ignacio Ortiz de Zúñiga
>>> http://www.xailer.com
>>>
>>>
>>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>>> news:[email=45ec658e@news.xailer.com...]45ec658e@news.xailer.com...[/email]
>>>> Estoy con la version de Xailer 1.2a
>>>>
>>>> Pues... MIS MISERIAS!!!... me encuentro que mi aplicación "grandota"
no
>>>> corre en windows 98. Me ha llamado algún cliente que todavía dispone
de
>>>> alguna terminal con Win98 y no me lo he creído!!! en los ordenadores
que
>>>> tiene instalado XP corre como siempre, pero en Win98 NADA DE NADA...
se
>>>> pone el mouse con el reloj de arena unos segundos y no hace nada!!!
>>>>
>>>> He sacado el polvo de un Pentium133 con Win98 que tenía guardado... y
mi
>>>> sorpresa ha sido que EL CLIENTE TIENE RAZÓN, como casi siempre!!!
>>>> He hecho alguna prueba, pero no puedo hallar a que se debe, supongo
que
>>>> por tamaño... ¿puede ser???
>>>>
>>>> Mirar... si no comprimo el ejecutable con UPX, me lanza el siguiente
>>>> error.
>>>>
>>>> "Error al iniciar el programa
>>>> El archivo MiAplicacion.EXE está
>>>> vinculado a un USER32.DLL:SetLayeredWindowAttributes de exportación
que
>>>> no existe"
>>>>
>>>> Y si comprimo el ejecutable con UPX, que es como lo tienen mis
clientes,
>>>> no llega a ejecutar NADA de la aplicación, ni un simple MSGINFO() que
he
>>>> puesto en la función de inicio de mi aplicación.
>>>>
>>>> Estoy deseperado!!!
>>>> No se como puedo arreglar esta situación... Y mis clientes me van a
>>>> morder!!!
>>>> Tengo alguna aplicacin muuuuuy chiquitica... y esa si corre en Win98,
>>>> por eso me ha dado a pensar en el tamaño.... por lo visto el tamaño
SI
>>>> IMPORTA!!!
>>>>
>>>>
>>>> Gracias por vuestro tiempo.
>>>>
>>>> Un Saludo,
>>>> Xevi.
>>>>
>>>>
>>>
>>>
>>
>>
>
>
jose.luis
Mensajes: 1633
Registrado: Vie Oct 14, 2005 10:56 pm

Mi aplicaci

Mensaje por jose.luis »

Xevi,
Entonces me temo que tendrás que hacer una compilación condicional según el
sistema operativo destino. Mucho me temo que al incluir la llamada a esa
función api de windows estás implícitamente obligando al SO a, en el momento
del arranque, comprobar la existencia de esa función.
Saludos,
José Luis Capel
PD: si estoy equivocado... que me corrijan los 'monstruos' de Xailer ;-)
"Xevi" <xevicomas@gmail.com> escribió en el mensaje
news:[email=45ed285b@news.xailer.com...]45ed285b@news.xailer.com...[/email]
> José Luis,
>
> He probado de SOLO incluir el Wrapper sin hacer la llamada a la función y
> por lo visto a nivel de PRG no puedo ponerlo, pues solo con que incluya
> esta parte del wrapper ya no arranca la aplicación.
>
> Por eso se me ocurre que si el Wrapper puede detectar si es una versión
> superior a Win98 y hacer la llamada, luego si funcionaría.
>
>
> Un Saludo,
> Xevi.
>
>
> "José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje
> news:[email=45ed24c3@news.xailer.com...]45ed24c3@news.xailer.com...[/email]
> Xevi,
>
> Ponlo en nivel PRG. Algo así (por ejemplo)
>
> IF !XA_IsWin98()
> SetLayered.....
> ENDIF
>
> Saludos,
> José Luis Capel
>
> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
> news:[email=45ed1802@news.xailer.com...]45ed1802@news.xailer.com...[/email]
> Según el Wrapper que JoseF dejó en este foro...
> ¿cómo modificarlo para llamar a SetLayeredWindowAttributes solo si
> estamos en una versión de Windows superior a Win98???
>
> #pragma BEGINDUMP
>
> #include "windows.h"
> #include "xailer.h"
>
> XA_FUNC( SETLAYEREDWINDOWATTRIBUTES )
> {
> if( VersionWindows > Windows98 )
> hb_retl( SetLayeredWindowAttributes( (HWND) hb_parnl( 1 ), hb_parnl(
> 2 ), hb_parnl( 3 ), hb_parnl( 4 ) ) );
> }
>
>
> #pragma ENDDUMP
>
> Gracias
>
> Un Saludo,
> Xevi.
>
>
> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
> news:45ec7032$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> > Ignacio,
> >
> > Confirmado, son las transparencias.
> > Ahora bien, para miontar el Wrapper para que tenga en cuenta cuando es
> Win98
> > o superior... eso como sería???
> >
> >
> > Gracias.
> >
> > Un Saludo,
> > Xevi.
> >
> >
> > "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
> > news:45ec694a$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> >> Xevi,
> >>
> >> Compruebo que si funciona en Win98. Por lo tanto supongo que será
> porque
> >> estás utilizando la transparencia de ventanas que Win98 no debe
> soportar.
> >> Por favor, confirmamelo.
> >>
> >> Gracias y un saludo,
> >>
> >> --
> >> Ignacio Ortiz de Zúñiga
> >> http://www.xailer.com
> >>
> >>
> >> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
> >> news:45ec67ec$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> >>> Xevi,
> >>>
> >>> ¿Estas utilizando la transparencia en algún formulario?
> >>>
> >>> Gracias
> >>>
> >>> --
> >>> Ignacio Ortiz de Zúñiga
> >>> http://www.xailer.com
> >>>
> >>>
> >>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
> >>> news:[email=45ec658e@news.xailer.com...]45ec658e@news.xailer.com...[/email]
> >>>> Estoy con la version de Xailer 1.2a
> >>>>
> >>>> Pues... MIS MISERIAS!!!... me encuentro que mi aplicación "grandota"
> no
> >>>> corre en windows 98. Me ha llamado algún cliente que todavía dispone
> de
> >>>> alguna terminal con Win98 y no me lo he creído!!! en los ordenadores
> que
> >>>> tiene instalado XP corre como siempre, pero en Win98 NADA DE NADA...
> se
> >>>> pone el mouse con el reloj de arena unos segundos y no hace nada!!!
> >>>>
> >>>> He sacado el polvo de un Pentium133 con Win98 que tenía guardado...
> y mi
> >>>> sorpresa ha sido que EL CLIENTE TIENE RAZÓN, como casi siempre!!!
> >>>> He hecho alguna prueba, pero no puedo hallar a que se debe, supongo
> que
> >>>> por tamaño... ¿puede ser???
> >>>>
> >>>> Mirar... si no comprimo el ejecutable con UPX, me lanza el siguiente
> >>>> error.
> >>>>
> >>>> "Error al iniciar el programa
> >>>> El archivo MiAplicacion.EXE está
> >>>> vinculado a un USER32.DLL:SetLayeredWindowAttributes de exportación
> que
> >>>> no existe"
> >>>>
> >>>> Y si comprimo el ejecutable con UPX, que es como lo tienen mis
> clientes,
> >>>> no llega a ejecutar NADA de la aplicación, ni un simple MSGINFO()
> que he
> >>>> puesto en la función de inicio de mi aplicación.
> >>>>
> >>>> Estoy deseperado!!!
> >>>> No se como puedo arreglar esta situación... Y mis clientes me van a
> >>>> morder!!!
> >>>> Tengo alguna aplicacin muuuuuy chiquitica... y esa si corre en
> Win98,
> >>>> por eso me ha dado a pensar en el tamaño.... por lo visto el tamaño
> SI
> >>>> IMPORTA!!!
> >>>>
> >>>>
> >>>> Gracias por vuestro tiempo.
> >>>>
> >>>> Un Saludo,
> >>>> Xevi.
> >>>>
> >>>>
> >>>
> >>>
> >>
> >>
> >
> >
>
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9457
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Mi aplicaci

Mensaje por ignacio »

Xevi,
El truco consiste en hacer un enlace a la función en tiempo de ejecución
cargando la DLL y utilizando la función GetProcAddress(). Aquí os dejo un
ejemplo real del propio Xailer:
//---------------------------------------------------------- ----------------
XA_FUNC( XPRINTER_GETPRINTERDEFAULT ) // ()->cPrinter
{
if ( ! XA_IsWin9X() )
{
typedef BOOL (WINAPI *fnGetDefaultPrinter)( LPTSTR pszBuffer, LPDWORD
pcchBuffer );
HMODULE hWinSpool;
fnGetDefaultPrinter fnGDP;
char cBuffer[ 256 ];
DWORD dwSize = 256;
memset( &cBuffer, 0, 256 );
hWinSpool = LoadLibrary( "winspool.drv" );
if ( !hWinSpool )
{
hb_retc( "" );
return;
}
fnGDP = GetProcAddress( hWinSpool, "GetDefaultPrinterA" );
if ( !fnGDP )
{
FreeLibrary( hWinSpool );
hb_retc( "" );
return;
}
if ( fnGDP( (LPTSTR) &cBuffer, &dwSize ) )
hb_retclen( (LPTSTR) &cBuffer, dwSize - 1 );
else
hb_retc( "" );
FreeLibrary( hWinSpool );
}
else
{
LPPRINTER_INFO_2 lp;
DWORD dwNeeded = 0;
DWORD dwReturned = 0;
DWORD dwFlags = PRINTER_ENUM_DEFAULT;
EnumPrinters( dwFlags , NULL, 2, NULL, 0, &dwNeeded, &dwReturned ) ;
if ( dwNeeded == 0 )
{
hb_retc( "" );
return;
}
if ( ( lp = ( LPPRINTER_INFO_2 ) hb_xgrab( dwNeeded ) ) == NULL )
{
hb_retc( "" );
return;
}
if ( EnumPrinters( dwFlags , NULL, 2, ( LPBYTE ) lp, dwNeeded,
&dwNeeded, &dwReturned ) == 0 )
{
hb_xfree( lp );
hb_retc( "" );
return;
}
hb_retc( lp[0].pPrinterName );
hb_xfree( lp );
}
}
Un saludo
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje
news:[email=45ed2e7f@news.xailer.com...]45ed2e7f@news.xailer.com...[/email]
> Xevi,
>
> Entonces me temo que tendrás que hacer una compilación condicional según
> el sistema operativo destino. Mucho me temo que al incluir la llamada a
> esa función api de windows estás implícitamente obligando al SO a, en el
> momento del arranque, comprobar la existencia de esa función.
>
> Saludos,
> José Luis Capel
> PD: si estoy equivocado... que me corrijan los 'monstruos' de Xailer ;-)
>
> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
> news:[email=45ed285b@news.xailer.com...]45ed285b@news.xailer.com...[/email]
>> José Luis,
>>
>> He probado de SOLO incluir el Wrapper sin hacer la llamada a la función y
>> por lo visto a nivel de PRG no puedo ponerlo, pues solo con que incluya
>> esta parte del wrapper ya no arranca la aplicación.
>>
>> Por eso se me ocurre que si el Wrapper puede detectar si es una versión
>> superior a Win98 y hacer la llamada, luego si funcionaría.
>>
>>
>> Un Saludo,
>> Xevi.
>>
>>
>> "José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje
>> news:[email=45ed24c3@news.xailer.com...]45ed24c3@news.xailer.com...[/email]
>> Xevi,
>>
>> Ponlo en nivel PRG. Algo así (por ejemplo)
>>
>> IF !XA_IsWin98()
>> SetLayered.....
>> ENDIF
>>
>> Saludos,
>> José Luis Capel
>>
>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>> news:[email=45ed1802@news.xailer.com...]45ed1802@news.xailer.com...[/email]
>> Según el Wrapper que JoseF dejó en este foro...
>> ¿cómo modificarlo para llamar a SetLayeredWindowAttributes solo si
>> estamos en una versión de Windows superior a Win98???
>>
>> #pragma BEGINDUMP
>>
>> #include "windows.h"
>> #include "xailer.h"
>>
>> XA_FUNC( SETLAYEREDWINDOWATTRIBUTES )
>> {
>> if( VersionWindows > Windows98 )
>> hb_retl( SetLayeredWindowAttributes( (HWND) hb_parnl( 1 ),
>> hb_parnl( 2 ), hb_parnl( 3 ), hb_parnl( 4 ) ) );
>> }
>>
>>
>> #pragma ENDDUMP
>>
>> Gracias
>>
>> Un Saludo,
>> Xevi.
>>
>>
>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>> news:45ec7032$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> > Ignacio,
>> >
>> > Confirmado, son las transparencias.
>> > Ahora bien, para miontar el Wrapper para que tenga en cuenta cuando es
>> Win98
>> > o superior... eso como sería???
>> >
>> >
>> > Gracias.
>> >
>> > Un Saludo,
>> > Xevi.
>> >
>> >
>> > "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
>> > news:45ec694a$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> >> Xevi,
>> >>
>> >> Compruebo que si funciona en Win98. Por lo tanto supongo que será
>> porque
>> >> estás utilizando la transparencia de ventanas que Win98 no debe
>> soportar.
>> >> Por favor, confirmamelo.
>> >>
>> >> Gracias y un saludo,
>> >>
>> >> --
>> >> Ignacio Ortiz de Zúñiga
>> >> http://www.xailer.com
>> >>
>> >>
>> >> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
>> >> news:45ec67ec$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> >>> Xevi,
>> >>>
>> >>> ¿Estas utilizando la transparencia en algún formulario?
>> >>>
>> >>> Gracias
>> >>>
>> >>> --
>> >>> Ignacio Ortiz de Zúñiga
>> >>> http://www.xailer.com
>> >>>
>> >>>
>> >>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>> >>> news:[email=45ec658e@news.xailer.com...]45ec658e@news.xailer.com...[/email]
>> >>>> Estoy con la version de Xailer 1.2a
>> >>>>
>> >>>> Pues... MIS MISERIAS!!!... me encuentro que mi aplicación
>> "grandota" no
>> >>>> corre en windows 98. Me ha llamado algún cliente que todavía
>> dispone de
>> >>>> alguna terminal con Win98 y no me lo he creído!!! en los
>> ordenadores que
>> >>>> tiene instalado XP corre como siempre, pero en Win98 NADA DE
>> NADA... se
>> >>>> pone el mouse con el reloj de arena unos segundos y no hace nada!!!
>> >>>>
>> >>>> He sacado el polvo de un Pentium133 con Win98 que tenía guardado...
>> y mi
>> >>>> sorpresa ha sido que EL CLIENTE TIENE RAZÓN, como casi siempre!!!
>> >>>> He hecho alguna prueba, pero no puedo hallar a que se debe, supongo
>> que
>> >>>> por tamaño... ¿puede ser???
>> >>>>
>> >>>> Mirar... si no comprimo el ejecutable con UPX, me lanza el
>> siguiente
>> >>>> error.
>> >>>>
>> >>>> "Error al iniciar el programa
>> >>>> El archivo MiAplicacion.EXE está
>> >>>> vinculado a un USER32.DLL:SetLayeredWindowAttributes de exportación
>> que
>> >>>> no existe"
>> >>>>
>> >>>> Y si comprimo el ejecutable con UPX, que es como lo tienen mis
>> clientes,
>> >>>> no llega a ejecutar NADA de la aplicación, ni un simple MSGINFO()
>> que he
>> >>>> puesto en la función de inicio de mi aplicación.
>> >>>>
>> >>>> Estoy deseperado!!!
>> >>>> No se como puedo arreglar esta situación... Y mis clientes me van a
>> >>>> morder!!!
>> >>>> Tengo alguna aplicacin muuuuuy chiquitica... y esa si corre en
>> Win98,
>> >>>> por eso me ha dado a pensar en el tamaño.... por lo visto el tamaño
>> SI
>> >>>> IMPORTA!!!
>> >>>>
>> >>>>
>> >>>> Gracias por vuestro tiempo.
>> >>>>
>> >>>> Un Saludo,
>> >>>> Xevi.
>> >>>>
>> >>>>
>> >>>
>> >>>
>> >>
>> >>
>> >
>> >
>>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

Mi aplicaci

Mensaje por Xevi »

Ignacio,
Perfecto!!!
Gracias.
Ahí va el Wrapper que corre en TODOS los windows y que la transparencia
funciona en windows no 9x.
//---------------------------------------------------------- --------------------
//Transparencia de Ventanas, Ojo... no funcionan en Win9x
#pragma BEGINDUMP
#include "windows.h"
#include "xailer.h"
XA_FUNC( SETLAYEREDWINDOWATTRIBUTES )
{
if ( !XA_IsWin9X() )
{
hb_retl( SetLayeredWindowAttributes( (HWND) hb_parnl( 1 ), hb_parnl( 2 ),
hb_parnl( 3 ), hb_parnl( 4 ) ) );
}
}
#pragma ENDDUMP
Un Saludo,
Xevi.
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:45ed2f8b$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Xevi,
>
> El truco consiste en hacer un enlace a la función en tiempo de ejecución
> cargando la DLL y utilizando la función GetProcAddress(). Aquí os dejo un
> ejemplo real del propio Xailer:
>
> //---------------------------------------------------------- ----------------
>
> XA_FUNC( XPRINTER_GETPRINTERDEFAULT ) // ()->cPrinter
> {
> if ( ! XA_IsWin9X() )
> {
> typedef BOOL (WINAPI *fnGetDefaultPrinter)( LPTSTR pszBuffer, LPDWORD
> pcchBuffer );
> HMODULE hWinSpool;
> fnGetDefaultPrinter fnGDP;
> char cBuffer[ 256 ];
> DWORD dwSize = 256;
>
> memset( &cBuffer, 0, 256 );
> hWinSpool = LoadLibrary( "winspool.drv" );
>
> if ( !hWinSpool )
> {
> hb_retc( "" );
> return;
> }
>
> fnGDP = GetProcAddress( hWinSpool, "GetDefaultPrinterA" );
>
> if ( !fnGDP )
> {
> FreeLibrary( hWinSpool );
> hb_retc( "" );
> return;
> }
>
> if ( fnGDP( (LPTSTR) &cBuffer, &dwSize ) )
> hb_retclen( (LPTSTR) &cBuffer, dwSize - 1 );
> else
> hb_retc( "" );
>
> FreeLibrary( hWinSpool );
> }
> else
> {
> LPPRINTER_INFO_2 lp;
> DWORD dwNeeded = 0;
> DWORD dwReturned = 0;
> DWORD dwFlags = PRINTER_ENUM_DEFAULT;
>
> EnumPrinters( dwFlags , NULL, 2, NULL, 0, &dwNeeded, &dwReturned ) ;
>
> if ( dwNeeded == 0 )
> {
> hb_retc( "" );
> return;
> }
>
> if ( ( lp = ( LPPRINTER_INFO_2 ) hb_xgrab( dwNeeded ) ) == NULL )
> {
> hb_retc( "" );
> return;
> }
>
> if ( EnumPrinters( dwFlags , NULL, 2, ( LPBYTE ) lp, dwNeeded,
> &dwNeeded, &dwReturned ) == 0 )
> {
> hb_xfree( lp );
> hb_retc( "" );
> return;
> }
>
> hb_retc( lp[0].pPrinterName );
> hb_xfree( lp );
> }
> }
>
>
>
> Un saludo
>
> --
> Ignacio Ortiz de Zúñiga
> http://www.xailer.com
>
>
> "José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje
> news:[email=45ed2e7f@news.xailer.com...]45ed2e7f@news.xailer.com...[/email]
>> Xevi,
>>
>> Entonces me temo que tendrás que hacer una compilación condicional según
>> el sistema operativo destino. Mucho me temo que al incluir la llamada a
>> esa función api de windows estás implícitamente obligando al SO a, en el
>> momento del arranque, comprobar la existencia de esa función.
>>
>> Saludos,
>> José Luis Capel
>> PD: si estoy equivocado... que me corrijan los 'monstruos' de Xailer ;-)
>>
>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>> news:[email=45ed285b@news.xailer.com...]45ed285b@news.xailer.com...[/email]
>>> José Luis,
>>>
>>> He probado de SOLO incluir el Wrapper sin hacer la llamada a la función
>>> y por lo visto a nivel de PRG no puedo ponerlo, pues solo con que
>>> incluya esta parte del wrapper ya no arranca la aplicación.
>>>
>>> Por eso se me ocurre que si el Wrapper puede detectar si es una versión
>>> superior a Win98 y hacer la llamada, luego si funcionaría.
>>>
>>>
>>> Un Saludo,
>>> Xevi.
>>>
>>>
>>> "José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje
>>> news:[email=45ed24c3@news.xailer.com...]45ed24c3@news.xailer.com...[/email]
>>> Xevi,
>>>
>>> Ponlo en nivel PRG. Algo así (por ejemplo)
>>>
>>> IF !XA_IsWin98()
>>> SetLayered.....
>>> ENDIF
>>>
>>> Saludos,
>>> José Luis Capel
>>>
>>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>>> news:[email=45ed1802@news.xailer.com...]45ed1802@news.xailer.com...[/email]
>>> Según el Wrapper que JoseF dejó en este foro...
>>> ¿cómo modificarlo para llamar a SetLayeredWindowAttributes solo si
>>> estamos en una versión de Windows superior a Win98???
>>>
>>> #pragma BEGINDUMP
>>>
>>> #include "windows.h"
>>> #include "xailer.h"
>>>
>>> XA_FUNC( SETLAYEREDWINDOWATTRIBUTES )
>>> {
>>> if( VersionWindows > Windows98 )
>>> hb_retl( SetLayeredWindowAttributes( (HWND) hb_parnl( 1 ),
>>> hb_parnl( 2 ), hb_parnl( 3 ), hb_parnl( 4 ) ) );
>>> }
>>>
>>>
>>> #pragma ENDDUMP
>>>
>>> Gracias
>>>
>>> Un Saludo,
>>> Xevi.
>>>
>>>
>>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>>> news:45ec7032$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>> > Ignacio,
>>> >
>>> > Confirmado, son las transparencias.
>>> > Ahora bien, para miontar el Wrapper para que tenga en cuenta cuando
>>> es Win98
>>> > o superior... eso como sería???
>>> >
>>> >
>>> > Gracias.
>>> >
>>> > Un Saludo,
>>> > Xevi.
>>> >
>>> >
>>> > "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
>>> > news:45ec694a$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>> >> Xevi,
>>> >>
>>> >> Compruebo que si funciona en Win98. Por lo tanto supongo que será
>>> porque
>>> >> estás utilizando la transparencia de ventanas que Win98 no debe
>>> soportar.
>>> >> Por favor, confirmamelo.
>>> >>
>>> >> Gracias y un saludo,
>>> >>
>>> >> --
>>> >> Ignacio Ortiz de Zúñiga
>>> >> http://www.xailer.com
>>> >>
>>> >>
>>> >> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
>>> >> news:45ec67ec$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>> >>> Xevi,
>>> >>>
>>> >>> ¿Estas utilizando la transparencia en algún formulario?
>>> >>>
>>> >>> Gracias
>>> >>>
>>> >>> --
>>> >>> Ignacio Ortiz de Zúñiga
>>> >>> http://www.xailer.com
>>> >>>
>>> >>>
>>> >>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>>> >>> news:[email=45ec658e@news.xailer.com...]45ec658e@news.xailer.com...[/email]
>>> >>>> Estoy con la version de Xailer 1.2a
>>> >>>>
>>> >>>> Pues... MIS MISERIAS!!!... me encuentro que mi aplicación
>>> "grandota" no
>>> >>>> corre en windows 98. Me ha llamado algún cliente que todavía
>>> dispone de
>>> >>>> alguna terminal con Win98 y no me lo he creído!!! en los
>>> ordenadores que
>>> >>>> tiene instalado XP corre como siempre, pero en Win98 NADA DE
>>> NADA... se
>>> >>>> pone el mouse con el reloj de arena unos segundos y no hace
>>> nada!!!
>>> >>>>
>>> >>>> He sacado el polvo de un Pentium133 con Win98 que tenía
>>> guardado... y mi
>>> >>>> sorpresa ha sido que EL CLIENTE TIENE RAZÓN, como casi siempre!!!
>>> >>>> He hecho alguna prueba, pero no puedo hallar a que se debe,
>>> supongo que
>>> >>>> por tamaño... ¿puede ser???
>>> >>>>
>>> >>>> Mirar... si no comprimo el ejecutable con UPX, me lanza el
>>> siguiente
>>> >>>> error.
>>> >>>>
>>> >>>> "Error al iniciar el programa
>>> >>>> El archivo MiAplicacion.EXE está
>>> >>>> vinculado a un USER32.DLL:SetLayeredWindowAttributes de
>>> exportación que
>>> >>>> no existe"
>>> >>>>
>>> >>>> Y si comprimo el ejecutable con UPX, que es como lo tienen mis
>>> clientes,
>>> >>>> no llega a ejecutar NADA de la aplicación, ni un simple MSGINFO()
>>> que he
>>> >>>> puesto en la función de inicio de mi aplicación.
>>> >>>>
>>> >>>> Estoy deseperado!!!
>>> >>>> No se como puedo arreglar esta situación... Y mis clientes me van
>>> a
>>> >>>> morder!!!
>>> >>>> Tengo alguna aplicacin muuuuuy chiquitica... y esa si corre en
>>> Win98,
>>> >>>> por eso me ha dado a pensar en el tamaño.... por lo visto el
>>> tamaño SI
>>> >>>> IMPORTA!!!
>>> >>>>
>>> >>>>
>>> >>>> Gracias por vuestro tiempo.
>>> >>>>
>>> >>>> Un Saludo,
>>> >>>> Xevi.
>>> >>>>
>>> >>>>
>>> >>>
>>> >>>
>>> >>
>>> >>
>>> >
>>> >
>>>
>>
>>
>
>
Rolando
Mensajes: 191
Registrado: Lun May 08, 2006 2:10 pm

Mi aplicaci

Mensaje por Rolando »

Excelente !!!.
Gracias.
"Xevi" <xevicomas@gmail.com> escribió en el mensaje
news:[email=45ed50e3@news.xailer.com...]45ed50e3@news.xailer.com...[/email]
> Ignacio,
>
> Perfecto!!!
> Gracias.
>
> Ahí va el Wrapper que corre en TODOS los windows y que la transparencia
> funciona en windows no 9x.
>
> //---------------------------------------------------------- --------------------
> //Transparencia de Ventanas, Ojo... no funcionan en Win9x
> #pragma BEGINDUMP
>
> #include "windows.h"
> #include "xailer.h"
>
> XA_FUNC( SETLAYEREDWINDOWATTRIBUTES )
> {
> if ( !XA_IsWin9X() )
> {
> hb_retl( SetLayeredWindowAttributes( (HWND) hb_parnl( 1 ), hb_parnl(
> 2 ), hb_parnl( 3 ), hb_parnl( 4 ) ) );
> }
> }
>
> #pragma ENDDUMP
>
>
> Un Saludo,
> Xevi.
>
>
> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
> news:45ed2f8b$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> Xevi,
>>
>> El truco consiste en hacer un enlace a la función en tiempo de ejecución
>> cargando la DLL y utilizando la función GetProcAddress(). Aquí os dejo un
>> ejemplo real del propio Xailer:
>>
>> //---------------------------------------------------------- ----------------
>>
>> XA_FUNC( XPRINTER_GETPRINTERDEFAULT ) // ()->cPrinter
>> {
>> if ( ! XA_IsWin9X() )
>> {
>> typedef BOOL (WINAPI *fnGetDefaultPrinter)( LPTSTR pszBuffer,
>> LPDWORD pcchBuffer );
>> HMODULE hWinSpool;
>> fnGetDefaultPrinter fnGDP;
>> char cBuffer[ 256 ];
>> DWORD dwSize = 256;
>>
>> memset( &cBuffer, 0, 256 );
>> hWinSpool = LoadLibrary( "winspool.drv" );
>>
>> if ( !hWinSpool )
>> {
>> hb_retc( "" );
>> return;
>> }
>>
>> fnGDP = GetProcAddress( hWinSpool, "GetDefaultPrinterA" );
>>
>> if ( !fnGDP )
>> {
>> FreeLibrary( hWinSpool );
>> hb_retc( "" );
>> return;
>> }
>>
>> if ( fnGDP( (LPTSTR) &cBuffer, &dwSize ) )
>> hb_retclen( (LPTSTR) &cBuffer, dwSize - 1 );
>> else
>> hb_retc( "" );
>>
>> FreeLibrary( hWinSpool );
>> }
>> else
>> {
>> LPPRINTER_INFO_2 lp;
>> DWORD dwNeeded = 0;
>> DWORD dwReturned = 0;
>> DWORD dwFlags = PRINTER_ENUM_DEFAULT;
>>
>> EnumPrinters( dwFlags , NULL, 2, NULL, 0, &dwNeeded, &dwReturned ) ;
>>
>> if ( dwNeeded == 0 )
>> {
>> hb_retc( "" );
>> return;
>> }
>>
>> if ( ( lp = ( LPPRINTER_INFO_2 ) hb_xgrab( dwNeeded ) ) == NULL )
>> {
>> hb_retc( "" );
>> return;
>> }
>>
>> if ( EnumPrinters( dwFlags , NULL, 2, ( LPBYTE ) lp, dwNeeded,
>> &dwNeeded, &dwReturned ) == 0 )
>> {
>> hb_xfree( lp );
>> hb_retc( "" );
>> return;
>> }
>>
>> hb_retc( lp[0].pPrinterName );
>> hb_xfree( lp );
>> }
>> }
>>
>>
>>
>> Un saludo
>>
>> --
>> Ignacio Ortiz de Zúñiga
>> http://www.xailer.com
>>
>>
>> "José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje
>> news:[email=45ed2e7f@news.xailer.com...]45ed2e7f@news.xailer.com...[/email]
>>> Xevi,
>>>
>>> Entonces me temo que tendrás que hacer una compilación condicional según
>>> el sistema operativo destino. Mucho me temo que al incluir la llamada a
>>> esa función api de windows estás implícitamente obligando al SO a, en el
>>> momento del arranque, comprobar la existencia de esa función.
>>>
>>> Saludos,
>>> José Luis Capel
>>> PD: si estoy equivocado... que me corrijan los 'monstruos' de Xailer ;-)
>>>
>>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>>> news:[email=45ed285b@news.xailer.com...]45ed285b@news.xailer.com...[/email]
>>>> José Luis,
>>>>
>>>> He probado de SOLO incluir el Wrapper sin hacer la llamada a la función
>>>> y por lo visto a nivel de PRG no puedo ponerlo, pues solo con que
>>>> incluya esta parte del wrapper ya no arranca la aplicación.
>>>>
>>>> Por eso se me ocurre que si el Wrapper puede detectar si es una versión
>>>> superior a Win98 y hacer la llamada, luego si funcionaría.
>>>>
>>>>
>>>> Un Saludo,
>>>> Xevi.
>>>>
>>>>
>>>> "José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje
>>>> news:[email=45ed24c3@news.xailer.com...]45ed24c3@news.xailer.com...[/email]
>>>> Xevi,
>>>>
>>>> Ponlo en nivel PRG. Algo así (por ejemplo)
>>>>
>>>> IF !XA_IsWin98()
>>>> SetLayered.....
>>>> ENDIF
>>>>
>>>> Saludos,
>>>> José Luis Capel
>>>>
>>>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>>>> news:[email=45ed1802@news.xailer.com...]45ed1802@news.xailer.com...[/email]
>>>> Según el Wrapper que JoseF dejó en este foro...
>>>> ¿cómo modificarlo para llamar a SetLayeredWindowAttributes solo si
>>>> estamos en una versión de Windows superior a Win98???
>>>>
>>>> #pragma BEGINDUMP
>>>>
>>>> #include "windows.h"
>>>> #include "xailer.h"
>>>>
>>>> XA_FUNC( SETLAYEREDWINDOWATTRIBUTES )
>>>> {
>>>> if( VersionWindows > Windows98 )
>>>> hb_retl( SetLayeredWindowAttributes( (HWND) hb_parnl( 1 ),
>>>> hb_parnl( 2 ), hb_parnl( 3 ), hb_parnl( 4 ) ) );
>>>> }
>>>>
>>>>
>>>> #pragma ENDDUMP
>>>>
>>>> Gracias
>>>>
>>>> Un Saludo,
>>>> Xevi.
>>>>
>>>>
>>>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>>>> news:45ec7032$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>>> > Ignacio,
>>>> >
>>>> > Confirmado, son las transparencias.
>>>> > Ahora bien, para miontar el Wrapper para que tenga en cuenta cuando
>>>> es Win98
>>>> > o superior... eso como sería???
>>>> >
>>>> >
>>>> > Gracias.
>>>> >
>>>> > Un Saludo,
>>>> > Xevi.
>>>> >
>>>> >
>>>> > "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
>>>> > news:45ec694a$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>>> >> Xevi,
>>>> >>
>>>> >> Compruebo que si funciona en Win98. Por lo tanto supongo que será
>>>> porque
>>>> >> estás utilizando la transparencia de ventanas que Win98 no debe
>>>> soportar.
>>>> >> Por favor, confirmamelo.
>>>> >>
>>>> >> Gracias y un saludo,
>>>> >>
>>>> >> --
>>>> >> Ignacio Ortiz de Zúñiga
>>>> >> http://www.xailer.com
>>>> >>
>>>> >>
>>>> >> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el
>>>> mensaje
>>>> >> news:45ec67ec$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>>> >>> Xevi,
>>>> >>>
>>>> >>> ¿Estas utilizando la transparencia en algún formulario?
>>>> >>>
>>>> >>> Gracias
>>>> >>>
>>>> >>> --
>>>> >>> Ignacio Ortiz de Zúñiga
>>>> >>> http://www.xailer.com
>>>> >>>
>>>> >>>
>>>> >>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>>>> >>> news:[email=45ec658e@news.xailer.com...]45ec658e@news.xailer.com...[/email]
>>>> >>>> Estoy con la version de Xailer 1.2a
>>>> >>>>
>>>> >>>> Pues... MIS MISERIAS!!!... me encuentro que mi aplicación
>>>> "grandota" no
>>>> >>>> corre en windows 98. Me ha llamado algún cliente que todavía
>>>> dispone de
>>>> >>>> alguna terminal con Win98 y no me lo he creído!!! en los
>>>> ordenadores que
>>>> >>>> tiene instalado XP corre como siempre, pero en Win98 NADA DE
>>>> NADA... se
>>>> >>>> pone el mouse con el reloj de arena unos segundos y no hace
>>>> nada!!!
>>>> >>>>
>>>> >>>> He sacado el polvo de un Pentium133 con Win98 que tenía
>>>> guardado... y mi
>>>> >>>> sorpresa ha sido que EL CLIENTE TIENE RAZÓN, como casi siempre!!!
>>>> >>>> He hecho alguna prueba, pero no puedo hallar a que se debe,
>>>> supongo que
>>>> >>>> por tamaño... ¿puede ser???
>>>> >>>>
>>>> >>>> Mirar... si no comprimo el ejecutable con UPX, me lanza el
>>>> siguiente
>>>> >>>> error.
>>>> >>>>
>>>> >>>> "Error al iniciar el programa
>>>> >>>> El archivo MiAplicacion.EXE está
>>>> >>>> vinculado a un USER32.DLL:SetLayeredWindowAttributes de
>>>> exportación que
>>>> >>>> no existe"
>>>> >>>>
>>>> >>>> Y si comprimo el ejecutable con UPX, que es como lo tienen mis
>>>> clientes,
>>>> >>>> no llega a ejecutar NADA de la aplicación, ni un simple MSGINFO()
>>>> que he
>>>> >>>> puesto en la función de inicio de mi aplicación.
>>>> >>>>
>>>> >>>> Estoy deseperado!!!
>>>> >>>> No se como puedo arreglar esta situación... Y mis clientes me van
>>>> a
>>>> >>>> morder!!!
>>>> >>>> Tengo alguna aplicacin muuuuuy chiquitica... y esa si corre en
>>>> Win98,
>>>> >>>> por eso me ha dado a pensar en el tamaño.... por lo visto el
>>>> tamaño SI
>>>> >>>> IMPORTA!!!
>>>> >>>>
>>>> >>>>
>>>> >>>> Gracias por vuestro tiempo.
>>>> >>>>
>>>> >>>> Un Saludo,
>>>> >>>> Xevi.
>>>> >>>>
>>>> >>>>
>>>> >>>
>>>> >>>
>>>> >>
>>>> >>
>>>> >
>>>> >
>>>>
>>>
>>>
>>
>>
>
>
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

Mi aplicaci

Mensaje por Xevi »

Lo siento,
me he precipitado con las pruebas,... este Wrapper no funciona en Win98.
Sacaré las transparencias de mi aplicación...
Un Saludo,
Xevi.
"Rolando Sarrailh" <rsarrailh@gmail.com> escribió en el mensaje
news:[email=45ed79a8@news.xailer.com...]45ed79a8@news.xailer.com...[/email]
> Excelente !!!.
> Gracias.
>
> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
> news:[email=45ed50e3@news.xailer.com...]45ed50e3@news.xailer.com...[/email]
>> Ignacio,
>>
>> Perfecto!!!
>> Gracias.
>>
>> Ahí va el Wrapper que corre en TODOS los windows y que la transparencia
>> funciona en windows no 9x.
>>
>> //---------------------------------------------------------- --------------------
>> //Transparencia de Ventanas, Ojo... no funcionan en Win9x
>> #pragma BEGINDUMP
>>
>> #include "windows.h"
>> #include "xailer.h"
>>
>> XA_FUNC( SETLAYEREDWINDOWATTRIBUTES )
>> {
>> if ( !XA_IsWin9X() )
>> {
>> hb_retl( SetLayeredWindowAttributes( (HWND) hb_parnl( 1 ), hb_parnl(
>> 2 ), hb_parnl( 3 ), hb_parnl( 4 ) ) );
>> }
>> }
>>
>> #pragma ENDDUMP
>>
>>
>> Un Saludo,
>> Xevi.
>>
>>
>> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
>> news:45ed2f8b$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>> Xevi,
>>>
>>> El truco consiste en hacer un enlace a la función en tiempo de ejecución
>>> cargando la DLL y utilizando la función GetProcAddress(). Aquí os dejo
>>> un ejemplo real del propio Xailer:
>>>
>>> //---------------------------------------------------------- ----------------
>>>
>>> XA_FUNC( XPRINTER_GETPRINTERDEFAULT ) // ()->cPrinter
>>> {
>>> if ( ! XA_IsWin9X() )
>>> {
>>> typedef BOOL (WINAPI *fnGetDefaultPrinter)( LPTSTR pszBuffer,
>>> LPDWORD pcchBuffer );
>>> HMODULE hWinSpool;
>>> fnGetDefaultPrinter fnGDP;
>>> char cBuffer[ 256 ];
>>> DWORD dwSize = 256;
>>>
>>> memset( &cBuffer, 0, 256 );
>>> hWinSpool = LoadLibrary( "winspool.drv" );
>>>
>>> if ( !hWinSpool )
>>> {
>>> hb_retc( "" );
>>> return;
>>> }
>>>
>>> fnGDP = GetProcAddress( hWinSpool, "GetDefaultPrinterA" );
>>>
>>> if ( !fnGDP )
>>> {
>>> FreeLibrary( hWinSpool );
>>> hb_retc( "" );
>>> return;
>>> }
>>>
>>> if ( fnGDP( (LPTSTR) &cBuffer, &dwSize ) )
>>> hb_retclen( (LPTSTR) &cBuffer, dwSize - 1 );
>>> else
>>> hb_retc( "" );
>>>
>>> FreeLibrary( hWinSpool );
>>> }
>>> else
>>> {
>>> LPPRINTER_INFO_2 lp;
>>> DWORD dwNeeded = 0;
>>> DWORD dwReturned = 0;
>>> DWORD dwFlags = PRINTER_ENUM_DEFAULT;
>>>
>>> EnumPrinters( dwFlags , NULL, 2, NULL, 0, &dwNeeded, &dwReturned )
>>> ;
>>>
>>> if ( dwNeeded == 0 )
>>> {
>>> hb_retc( "" );
>>> return;
>>> }
>>>
>>> if ( ( lp = ( LPPRINTER_INFO_2 ) hb_xgrab( dwNeeded ) ) == NULL )
>>> {
>>> hb_retc( "" );
>>> return;
>>> }
>>>
>>> if ( EnumPrinters( dwFlags , NULL, 2, ( LPBYTE ) lp, dwNeeded,
>>> &dwNeeded, &dwReturned ) == 0 )
>>> {
>>> hb_xfree( lp );
>>> hb_retc( "" );
>>> return;
>>> }
>>>
>>> hb_retc( lp[0].pPrinterName );
>>> hb_xfree( lp );
>>> }
>>> }
>>>
>>>
>>>
>>> Un saludo
>>>
>>> --
>>> Ignacio Ortiz de Zúñiga
>>> http://www.xailer.com
>>>
>>>
>>> "José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje
>>> news:[email=45ed2e7f@news.xailer.com...]45ed2e7f@news.xailer.com...[/email]
>>>> Xevi,
>>>>
>>>> Entonces me temo que tendrás que hacer una compilación condicional
>>>> según el sistema operativo destino. Mucho me temo que al incluir la
>>>> llamada a esa función api de windows estás implícitamente obligando al
>>>> SO a, en el momento del arranque, comprobar la existencia de esa
>>>> función.
>>>>
>>>> Saludos,
>>>> José Luis Capel
>>>> PD: si estoy equivocado... que me corrijan los 'monstruos' de Xailer
>>>> ;-)
>>>>
>>>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>>>> news:[email=45ed285b@news.xailer.com...]45ed285b@news.xailer.com...[/email]
>>>>> José Luis,
>>>>>
>>>>> He probado de SOLO incluir el Wrapper sin hacer la llamada a la
>>>>> función y por lo visto a nivel de PRG no puedo ponerlo, pues solo con
>>>>> que incluya esta parte del wrapper ya no arranca la aplicación.
>>>>>
>>>>> Por eso se me ocurre que si el Wrapper puede detectar si es una
>>>>> versión superior a Win98 y hacer la llamada, luego si funcionaría.
>>>>>
>>>>>
>>>>> Un Saludo,
>>>>> Xevi.
>>>>>
>>>>>
>>>>> "José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el
>>>>> mensaje news:[email=45ed24c3@news.xailer.com...]45ed24c3@news.xailer.com...[/email]
>>>>> Xevi,
>>>>>
>>>>> Ponlo en nivel PRG. Algo así (por ejemplo)
>>>>>
>>>>> IF !XA_IsWin98()
>>>>> SetLayered.....
>>>>> ENDIF
>>>>>
>>>>> Saludos,
>>>>> José Luis Capel
>>>>>
>>>>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>>>>> news:[email=45ed1802@news.xailer.com...]45ed1802@news.xailer.com...[/email]
>>>>> Según el Wrapper que JoseF dejó en este foro...
>>>>> ¿cómo modificarlo para llamar a SetLayeredWindowAttributes solo si
>>>>> estamos en una versión de Windows superior a Win98???
>>>>>
>>>>> #pragma BEGINDUMP
>>>>>
>>>>> #include "windows.h"
>>>>> #include "xailer.h"
>>>>>
>>>>> XA_FUNC( SETLAYEREDWINDOWATTRIBUTES )
>>>>> {
>>>>> if( VersionWindows > Windows98 )
>>>>> hb_retl( SetLayeredWindowAttributes( (HWND) hb_parnl( 1 ),
>>>>> hb_parnl( 2 ), hb_parnl( 3 ), hb_parnl( 4 ) ) );
>>>>> }
>>>>>
>>>>>
>>>>> #pragma ENDDUMP
>>>>>
>>>>> Gracias
>>>>>
>>>>> Un Saludo,
>>>>> Xevi.
>>>>>
>>>>>
>>>>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>>>>> news:45ec7032$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>>>> > Ignacio,
>>>>> >
>>>>> > Confirmado, son las transparencias.
>>>>> > Ahora bien, para miontar el Wrapper para que tenga en cuenta cuando
>>>>> es Win98
>>>>> > o superior... eso como sería???
>>>>> >
>>>>> >
>>>>> > Gracias.
>>>>> >
>>>>> > Un Saludo,
>>>>> > Xevi.
>>>>> >
>>>>> >
>>>>> > "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el
>>>>> mensaje
>>>>> > news:45ec694a$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>>>> >> Xevi,
>>>>> >>
>>>>> >> Compruebo que si funciona en Win98. Por lo tanto supongo que será
>>>>> porque
>>>>> >> estás utilizando la transparencia de ventanas que Win98 no debe
>>>>> soportar.
>>>>> >> Por favor, confirmamelo.
>>>>> >>
>>>>> >> Gracias y un saludo,
>>>>> >>
>>>>> >> --
>>>>> >> Ignacio Ortiz de Zúñiga
>>>>> >> http://www.xailer.com
>>>>> >>
>>>>> >>
>>>>> >> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el
>>>>> mensaje
>>>>> >> news:45ec67ec$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>>>> >>> Xevi,
>>>>> >>>
>>>>> >>> ¿Estas utilizando la transparencia en algún formulario?
>>>>> >>>
>>>>> >>> Gracias
>>>>> >>>
>>>>> >>> --
>>>>> >>> Ignacio Ortiz de Zúñiga
>>>>> >>> http://www.xailer.com
>>>>> >>>
>>>>> >>>
>>>>> >>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>>>>> >>> news:[email=45ec658e@news.xailer.com...]45ec658e@news.xailer.com...[/email]
>>>>> >>>> Estoy con la version de Xailer 1.2a
>>>>> >>>>
>>>>> >>>> Pues... MIS MISERIAS!!!... me encuentro que mi aplicación
>>>>> "grandota" no
>>>>> >>>> corre en windows 98. Me ha llamado algún cliente que todavía
>>>>> dispone de
>>>>> >>>> alguna terminal con Win98 y no me lo he creído!!! en los
>>>>> ordenadores que
>>>>> >>>> tiene instalado XP corre como siempre, pero en Win98 NADA DE
>>>>> NADA... se
>>>>> >>>> pone el mouse con el reloj de arena unos segundos y no hace
>>>>> nada!!!
>>>>> >>>>
>>>>> >>>> He sacado el polvo de un Pentium133 con Win98 que tenía
>>>>> guardado... y mi
>>>>> >>>> sorpresa ha sido que EL CLIENTE TIENE RAZÓN, como casi
>>>>> siempre!!!
>>>>> >>>> He hecho alguna prueba, pero no puedo hallar a que se debe,
>>>>> supongo que
>>>>> >>>> por tamaño... ¿puede ser???
>>>>> >>>>
>>>>> >>>> Mirar... si no comprimo el ejecutable con UPX, me lanza el
>>>>> siguiente
>>>>> >>>> error.
>>>>> >>>>
>>>>> >>>> "Error al iniciar el programa
>>>>> >>>> El archivo MiAplicacion.EXE está
>>>>> >>>> vinculado a un USER32.DLL:SetLayeredWindowAttributes de
>>>>> exportación que
>>>>> >>>> no existe"
>>>>> >>>>
>>>>> >>>> Y si comprimo el ejecutable con UPX, que es como lo tienen mis
>>>>> clientes,
>>>>> >>>> no llega a ejecutar NADA de la aplicación, ni un simple
>>>>> MSGINFO() que he
>>>>> >>>> puesto en la función de inicio de mi aplicación.
>>>>> >>>>
>>>>> >>>> Estoy deseperado!!!
>>>>> >>>> No se como puedo arreglar esta situación... Y mis clientes me
>>>>> van a
>>>>> >>>> morder!!!
>>>>> >>>> Tengo alguna aplicacin muuuuuy chiquitica... y esa si corre en
>>>>> Win98,
>>>>> >>>> por eso me ha dado a pensar en el tamaño.... por lo visto el
>>>>> tamaño SI
>>>>> >>>> IMPORTA!!!
>>>>> >>>>
>>>>> >>>>
>>>>> >>>> Gracias por vuestro tiempo.
>>>>> >>>>
>>>>> >>>> Un Saludo,
>>>>> >>>> Xevi.
>>>>> >>>>
>>>>> >>>>
>>>>> >>>
>>>>> >>>
>>>>> >>
>>>>> >>
>>>>> >
>>>>> >
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
jlalin
Mensajes: 926
Registrado: Sab Dic 25, 2010 11:10 pm

Mi aplicaci

Mensaje por jlalin »

#pragma BEGINDUMP
#include "windows.h"
#include "xailer.h"
#ifndef WS_EX_LAYERED
#define WS_EX_LAYERED 0x00080000
#endif
typedef BOOL (WINAPI * SLWAProc)( HWND hwnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags );
/*
#define LWA_COLORKEY 0x00000001
#define LWA_ALPHA 0x00000002
#define ULW_COLORKEY 0x00000001
#define ULW_ALPHA 0x00000002
#define ULW_OPAQUE 0x00000004
*/
XA_FUNC( SETLAYEREDWINDOWATTRIBUTES )
{
SLWAProc pSLWA;
HMODULE hUser32;
hUser32 = GetModuleHandle( "USER32.DLL" );
pSLWA = (SLWAProc) GetProcAddress( hUser32, "SetLayeredWindowAttributes" );
if( pSLWA == 0 )
hb_retl( FALSE );
//SetWindowLong(hwnd, GWL_EXSTYLE, GetWindowLong(hwnd, GWL_EXSTYLE) | WS_EX_LAYERED);
hb_retl( pSLWA( (HWND) hb_parnl( 1 ), hb_parnl( 2 ), hb_parnl( 3 ), hb_parnl( 4 ) ) );
}
#pragma ENDDUMP
--
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Mi aplicaci

Mensaje por jfgimenez »

Hola tocayo,
te has adelantado por un par de minutos... ya estaba yo preparando el
'wrapper dinámico' ;-)
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
jlalin
Mensajes: 926
Registrado: Sab Dic 25, 2010 11:10 pm

Mi aplicaci

Mensaje por jlalin »

Jose,
> te has adelantado por un par de minutos... ya estaba yo preparando el
> 'wrapper dinámico' ;-)
Eso pasa por no llevar el casco de plomo puesto ;-))))
Saludos,
José Lalí­n
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Mi aplicaci

Mensaje por jfgimenez »

José,
> Eso pasa por no llevar el casco de plomo puesto ;-))))
jejeje ;-)
Por cierto, esto va para todos... acabo de poner un pequeño ejemplo en el
foro inglés que seguro que os gustará a más de uno ;-)
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
jrcpoli-quitar
Mensajes: 558
Registrado: Mar Feb 09, 2010 2:26 pm

Mi aplicaci

Mensaje por jrcpoli-quitar »

Jose F. Gimenez escribió:
> José,
>
>> Eso pasa por no llevar el casco de plomo puesto ;-))))
>
> jejeje ;-)
>
> Por cierto, esto va para todos... acabo de poner un pequeño ejemplo en el
> foro inglés que seguro que os gustará a más de uno ;-)
>
Si alguno es tan amable y ha dado donde está el ejemplo puede poner el
enlace ya que de momento no lo he localizado.
José Ramón Castro.
jrcpoli-quitar
Mensajes: 558
Registrado: Mar Feb 09, 2010 2:26 pm

Mi aplicaci

Mensaje por jrcpoli-quitar »

Jose F. Gimenez escribió:
> José,
>
>> Eso pasa por no llevar el casco de plomo puesto ;-))))
>
> jejeje ;-)
>
> Por cierto, esto va para todos... acabo de poner un pequeño ejemplo en el
> foro inglés que seguro que os gustará a más de uno ;-)
>
Si alguno ha localizado el ejemplo puede poner el enlace, yo no he dado
con él.
José Ramón Castro.
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Mi aplicaci

Mensaje por jfgimenez »

José Ramón,
aquí está. Perdonad por no haberlo copiado aquí antes.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info


Attached files ExpBar.zip (1.8 KB)Â
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

Mi aplicaci

Mensaje por Xevi »

José,
El trabajo bien hecho no tiene fronteras!!!
Funciona perfecto en XP y aunque las transparencias no son visibles en
Win98, ahora el resto de la aplicación corre perfecta!!!
Gracias.
Un Saludo,
Xevi.
"José Lalín" <dezac@corevia.com> escribió en el mensaje
news:[email=45ed98cb@news.xailer.com...]45ed98cb@news.xailer.com...[/email]
>
> Xevi,
>
> prueba este código. Sólo lo he compilado pero no lo he probado.
>
> Saludos,
> José Lalín
>
>
>
------------------------------------------------------------ --------------------
> #pragma BEGINDUMP
>
> #include "windows.h"
> #include "xailer.h"
>
> #ifndef WS_EX_LAYERED
> #define WS_EX_LAYERED 0x00080000
> #endif
>
> typedef BOOL (WINAPI * SLWAProc)( HWND hwnd, COLORREF crKey, BYTE bAlpha,
> DWORD dwFlags );
>
> /*
> #define LWA_COLORKEY 0x00000001
> #define LWA_ALPHA 0x00000002
>
> #define ULW_COLORKEY 0x00000001
> #define ULW_ALPHA 0x00000002
> #define ULW_OPAQUE 0x00000004
> */
>
> XA_FUNC( SETLAYEREDWINDOWATTRIBUTES )
> {
> SLWAProc pSLWA;
> HMODULE hUser32;
>
> hUser32 = GetModuleHandle( "USER32.DLL" );
>
> pSLWA = (SLWAProc) GetProcAddress( hUser32,
> "SetLayeredWindowAttributes" );
>
> if( pSLWA == 0 )
> hb_retl( FALSE );
>
> //SetWindowLong(hwnd, GWL_EXSTYLE, GetWindowLong(hwnd, GWL_EXSTYLE) |
> WS_EX_LAYERED);
>
> hb_retl( pSLWA( (HWND) hb_parnl( 1 ), hb_parnl( 2 ), hb_parnl( 3 ),
> hb_parnl( 4 ) ) );
> }
>
> #pragma ENDDUMP
>
>
Responder