FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Migrando de FWH 32 a FWH 64 - windows.h
Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM
Re: Migrando de FWH 32 a FWH 64 - windows.h
Posted: Mon Jan 19, 2015 08:09 PM

Antonio, he tardado un poco en responder: as铆 es fprintf no llega a funcionar.
Ma帽ana probar茅 esto otro que me indicas.

Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM
Re: Migrando de FWH 32 a FWH 64 - windows.h
Posted: Mon Jan 19, 2015 08:45 PM
Lo acabo de probar y se para en hb_fopen.
El c贸digo que he puesto es:

Code (fw): Select all Collapse
//#include <hbapifs.h>  //Necesarias para hb_fsOpen
#include <fileio.ch>

#include "hbapi.h"
#include "stdio.h"
#include "WinBase.h"

FILE * hb_fopen( const char * path, const char * mode );

...

HB_FUNC( FTPLASTFILEINDIR )  //M茅todo por el 煤ltimo nombre en el listado obtenido.
{  
    WIN32_FIND_DATA ultdir;
    WIN32_FIND_DATA dirtemp;
    SYSTEMTIME stUTC;
    HINTERNET FtpHandle;
    FILE * fichero;
   
    MessageBox( GetActiveWindow(), "Antes de hb_fOpen() y antes de FtpFindFirstFile()", "Informacion", 0x40 );
    OutputDebugString( "Antes de hb_fsOpen() y antes de FtpFindFirstFile()\n" );

    //fichero = (FILE *) hb_fsOpen( "LISTFTP.DAT", FO_WRITE );
    fichero = hb_fopen( "LISTFTP.DAT", (const char * ) FO_WRITE );
   
    OutputDebugString( "despues de hb_fsOpen() y antes de FtpFindFirstFile()\n" );
 
    FtpHandle = FtpFindFirstFile( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ), &dirtemp, hb_parnl( 3 ), hb_parnl( 4 ) ) ;
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Migrando de FWH 32 a FWH 64 - windows.h
Posted: Mon Jan 19, 2015 09:26 PM

Paz,

Cambia esta l铆nea asi:

fichero = hb_fopen( "LISTFTP.DAT", "w" );

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM
Re: Migrando de FWH 32 a FWH 64 - windows.h
Posted: Tue Jan 20, 2015 03:22 PM

Ahora no se cuelga y va bien Antonio. :)

Lo que si me gustar铆a saber es que si tienes un rato puedas explicar el porqu茅 de usar hb_fopen en vez de la propia de C fopen.

Saludos.

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Migrando de FWH 32 a FWH 64 - windows.h
Posted: Tue Jan 20, 2015 03:39 PM
Paz,

En realidad esa funci贸n est谩 basada en fopen() pero antes de llamarla desbloquea la m谩quina virtual de Harbour,
permitiendo trabajar al recolector de basuras y otros c贸digos de ejecuci贸n exclusiva.

Y una vez se llama a fopen() se vuelve a bloquear el recolector de basuras y la ejecuci贸n de otras tareas mono hilo.

Aqui puedes revisar su c贸digo:

https://github.com/harbour/core/blob/master/src/common/hbfopen.c
regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion