GPF en FWPPC 2015 (Solucionado)

GPF en FWPPC 2015 (Solucionado)

Postby jmartial » Mon Nov 30, 2015 1:29 am

Buenas noches,

Estoy recompilando todo con la última versión de FWPPC y obtengo un error que windows anuncia como que se ha producido un error grave y la aplicación debe cerrarse.

Más o menos como un GPF en windows de escritorio.

Después de muchas trazas al código, compruebo que usando la función Curdir() es cuando sucede. De 10 veces 1 a lo mejor funciona. La quito y todo funciona correctamente.

El SO es win CE 6.0
Last edited by jmartial on Mon Nov 30, 2015 10:15 pm, edited 1 time in total.
Un Saludo,
Joaquín Martínez
jmartial
 
Posts: 455
Joined: Tue Mar 14, 2006 7:26 pm

Re: GPF en FWPPC 2015

Postby Antonio Linares » Mon Nov 30, 2015 8:06 am

Joaquín,

Podrias usar GetCurrentDirectory() instead of CurDir()

https://msdn.microsoft.com/en-us/library/windows/desktop/aa364934(v=vs.85).aspx
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 35348
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: GPF en FWPPC 2015

Postby jmartial » Mon Nov 30, 2015 10:08 pm

Hola Antonio,

Ya he hecho la función y funciona perfectamente sin ningún tipo de GPF en Win CE 6.0

Code: Select all  Expand view
DWORD WINAPI GetCurrentDirectory( DWORD len, LPWSTR buffer );

HB_FUNC( CECURDIR )

{
 LPWSTR buffer = ( LPWSTR ) hb_xgrab( MAX_PATH ) ;

 GetCurrentDirectory(  MAX_PATH , buffer );

 hb_retc( (char *) buffer );

 hb_xfree( buffer ) ;
}


Hay 2 temas que te comento:

- ¿Por qué no hay que pasar de unicode a ansi? En otras funciones había que hacerlo, y en esta función me he vuelto loco, hasta que al ver caracteres raros, probé sin convertir.

- ¿podrías incluirla sustituyendo a curdir() en las librerías de fwppc? Para no tener que ir parchendo el código.
Un Saludo,
Joaquín Martínez
jmartial
 
Posts: 455
Joined: Tue Mar 14, 2006 7:26 pm

Re: GPF en FWPPC 2015 (Solucionado)

Postby Antonio Linares » Tue Dec 01, 2015 2:58 pm

Joaquín,

No estamos compilando en modo completo unicode en FWPPC, luego
solo algunas funciones en C necesitan esa conversión.

Si, incluyo tu función para la próxima versión, gracias! :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 35348
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: GPF en FWPPC 2015 (Solucionado)

Postby Antonio Linares » Tue Dec 01, 2015 3:20 pm

Joaquín,

Como en FWPPC ya existe una función GetCurDir() y tenia un bug potencial,
el reemplazado su código con el tuyo, gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 35348
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: GPF en FWPPC 2015 (Solucionado)

Postby Antonio Linares » Tue Dec 01, 2015 6:47 pm

Joaquín,

Unos pequeños cambios en tu código:

Code: Select all  Expand view
HB_FUNC( GETCURDIR )
{
   LPSTR buffer = ( LPSTR ) hb_xgrab( MAX_PATH );

   GetCurrentDirectory( MAX_PATH, buffer );

   hb_retc( ( char * ) buffer );

   hb_xfree( buffer ) ;
}
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 35348
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: GPF en FWPPC 2015 (Solucionado)

Postby jmartial » Wed Dec 02, 2015 12:17 pm

Antonio,

En la definición de la función ponía LPWSTR buffer

¿Por qué lo has cambiado por LPSTR ?


Por curiosidad.
Un Saludo,
Joaquín Martínez
jmartial
 
Posts: 455
Joined: Tue Mar 14, 2006 7:26 pm

Re: GPF en FWPPC 2015 (Solucionado)

Postby Antonio Linares » Wed Dec 02, 2015 7:06 pm

Porque no llamamos a GetCurrentDirectory() en modo unicode

LPWSTR es un puntero a una cadena unicode

LPSTR es un puntero a una cadena tradicional
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 35348
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Pocket PC

Who is online

Users browsing this forum: No registered users and 3 guests