FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Pocket PC GPF en FWPPC 2015 (Solucionado)
Posts: 458
Joined: Tue Mar 14, 2006 07:26 PM
GPF en FWPPC 2015 (Solucionado)
Posted: Mon Nov 30, 2015 01: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

Un Saludo,

Joaqu铆n Mart铆nez
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: GPF en FWPPC 2015
Posted: Mon Nov 30, 2015 08: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
Posts: 458
Joined: Tue Mar 14, 2006 07:26 PM
Re: GPF en FWPPC 2015
Posted: 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 (fw): Select all Collapse
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
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: GPF en FWPPC 2015 (Solucionado)
Posted: Tue Dec 01, 2015 02: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
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: GPF en FWPPC 2015 (Solucionado)
Posted: Tue Dec 01, 2015 03: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
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: GPF en FWPPC 2015 (Solucionado)
Posted: Tue Dec 01, 2015 06:47 PM
Joaqu铆n,

Unos peque帽os cambios en tu c贸digo:

Code (fw): Select all Collapse
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
Posts: 458
Joined: Tue Mar 14, 2006 07:26 PM
Re: GPF en FWPPC 2015 (Solucionado)
Posted: 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
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: GPF en FWPPC 2015 (Solucionado)
Posted: Wed Dec 02, 2015 07: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

Continue the discussion