FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour nExtMem() provocando GPF con xhb.com
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
nExtMem() provocando GPF con xhb.com
Posted: Tue Mar 15, 2016 03:10 AM
Antonio, la funcion nExtMem() esta provocando gpf con xhb.com, esta funcion es usada en errsysw.prg por lo que cuando una app compilada con xhb.com genera un error, el cuadro de dialogo del error no aparece, si no que la aplicacion simplemnte colapsa y se cierra.
con xharbour y harbour funciona bien, ahora en los fuentes de fwh aparece la definicion de una funcion nExtMem pero esta encerrada en un
ifdef __CLIPPER__ por lo que no es la que se esta compilando con las app de 32 bits
Code (fw): Select all Collapse
#include "FiveWin.ch"

//----------------------------------------------------------------------------//

function Main()
   
   xbrowse(GetVersion())
   xbrowse(GetTasks())
   ?"IsWinNT():",IsWinNT()
   ?"IsExe64():",IsExe64()
   ?"ProcName( 7 ):",ProcName( 7 )
   ?"GetCPU():",GetCPU()
   ?" GetCPUSpeed():", GetCPUSpeed()
   ?"nExtMem():",nExtMem() 
   MsgInfo( "Hello world from Harbour and FWH!" )
   
return nil

memstat.prg
Code (fw): Select all Collapse
#ifdef __CLIPPER__

function nExtMem()

   local oMemoryStatus

   STRUCT oMemoryStatus
      MEMBER nSize          AS LONG
      MEMBER nMemoryLoad    AS LONG
      MEMBER nTotalPhys     AS LONG
      MEMBER nAvailPhys     AS LONG
      MEMBER nTotalPageFile AS LONG
      MEMBER nAvailPageFile AS LONG
      MEMBER nTotalVirtual  AS LONG
      MEMBER nAvailVirtual  AS LONG
   ENDSTRUCT

   oMemoryStatus:nSize = oMemoryStatus:SizeOf()
   GblMemStat( oMemoryStatus:cBuffer )

return oMemoryStatus:nTotalPhys

DLL32 FUNCTION GblMemStat( pMEMORYSTATUS AS LPSTR ) AS VOID PASCAL ;
                           FROM "GlobalMemoryStatus" LIB "kernel32.dll"

#endif
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: nExtMem() provocando GPF con xhb.com
Posted: Tue Mar 15, 2016 03:16 AM
Antonio, he quitado la compilacion condicional y ya funciona.
Code (fw): Select all Collapse
#include "FiveWin.ch"
#include "dll.ch"
#include "struct.ch"
//----------------------------------------------------------------------------//

function Main()
   
   xbrowse(GetVersion())
   xbrowse(GetTasks())
   ?"IsWinNT():",IsWinNT()
   ?"IsExe64():",IsExe64()
   ?"ProcName( 7 ):",ProcName( 7 )
   ?"GetCPU():",GetCPU()
   ?" GetCPUSpeed():", GetCPUSpeed()
   ?"nExtMem():",nExtMem() 
?a+1      //--------------------------->provocamos un error
   MsgInfo( "Hello world from Harbour and FWH!" )
   
return nil

//----------------------------------------------------------------------------//


function nExtMem()

   local oMemoryStatus

   STRUCT oMemoryStatus
      MEMBER nSize          AS LONG
      MEMBER nMemoryLoad    AS LONG
      MEMBER nTotalPhys     AS LONG
      MEMBER nAvailPhys     AS LONG
      MEMBER nTotalPageFile AS LONG
      MEMBER nAvailPageFile AS LONG
      MEMBER nTotalVirtual  AS LONG
      MEMBER nAvailVirtual  AS LONG
   ENDSTRUCT

   oMemoryStatus:nSize = oMemoryStatus:SizeOf()
   GblMemStat( oMemoryStatus:cBuffer )

return oMemoryStatus:nTotalPhys

DLL32 FUNCTION GblMemStat( pMEMORYSTATUS AS LPSTR ) AS VOID PASCAL ;
                           FROM "GlobalMemoryStatus" LIB "kernel32.dll"
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: nExtMem() provocando GPF con xhb.com
Posted: Thu Mar 31, 2016 02:06 PM

Carlos,

Incluido para la próxima versión, gracias!

regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion