Parece que cGetFile() devuelve un string vacío cuando el nombre del archivo seleccionado (con la ruta), excede los 127 caracteres.
¿Es esto normal? ¿Cómo puede corregirse?
Gracias.
Parece que cGetFile() devuelve un string vacío cuando el nombre del archivo seleccionado (con la ruta), excede los 127 caracteres.
¿Es esto normal? ¿Cómo puede corregirse?
Gracias.
Gracias, Antonio.
Pero no logro que me devuelva algo no vacío cuando selecciono:
C:\Documents and Settings\CESAR.SERVIDOR\Mis documentos\Mis imágenes\CARATULAS DE PS2\Los Padrinos Magicos - Shadows Showdown.jpg
(129 caracteres) a menos que le elimine la última palabra en el nombre del archivo.
FWH803+BCC55+xHB1
César,
Por favor revisa que tengas esta línea con este valor en fwh\source\winapi\getfile.c:
pFile = ( LPSTR ) _xgrab( 256 );
Hola, Antonio.
Tienes razón y te pido disculpas por mi error.
Fue por un olvido mío y por la falta de un parámetro en cGetFile. Aprovecho para comentarte sobre este parámetro faltante por si lo consideras de utilidad.
En 2004 hice una modificación a cGetFile consistente de otro parámetro lMultiSelect que permita la selección de múltiples archivos haciendo
nFlags:=nOr(nFlags,if(lMultiSelect,OFN_ALLOWMULTISELECT,0)).
Guardé este cambio en una lib personal y la tenía enlazada a la aplcación que me falla. Como los años no pasan balde, la había olvidado completamente.
Por ser tan antiguo el code de mi cGetFile ponía
if ( dwFlags & OFN_ALLOWMULTISELECT )
pFile = ( LPSTR ) hb_xgrab( 32768 );
else
pFile = ( LPSTR ) hb_xgrab( 128 ); // - UFF!
:
:
if( GetOpenFileName( &ofn ) )
if ( dwFlags & OFN_ALLOWMULTISELECT )
hb_retclen( pFile, 32768 );
else
hb_retc( pFile );
else
hb_retc( "" );
Claramente aquí esta el error.
De nuevo mil disculpas y como siempre muchas gracias.