Page 1 of 1

Error BASE/1089 Argument error: ABS

PostPosted: Fri Jan 26, 2024 4:02 pm
by CARLOS ATUNCAR
Application
===========
Path and name: J:\Fwh2307\fwh\samples\nuevo1.exe (32 bits)
Size: 4,208,128 bytes
Compiler version: xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914)
FiveWin version: FWH 23.07
C compiler version: Borland/Embarcadero C++ 7.6 (32-bit)
Windows 10 64 Bits, version: 6.2, Build 9200

Time from start: 0 hours 0 mins 0 secs
Error occurred at: 01/26/24, 11:00:39
Error description: Error BASE/1089 Argument error: ABS
Args:
[ 1] = P 0x70B90000

Stack Calls
===========
Called from: => ABS( 0 )
Called from: .\source\winapi\WININET.PRG => WININET( 23 )
Called from: .\source\classes\INTERNET.PRG => TINTERNET:NEW( 28 )
Called from: nuevo1.prg => (b)MAIN( 6 )
Called from: .\source\function\MSGRUN.PRG => (b)MSGRUN( 47 )
Called from: .\source\classes\DIALOG.PRG => (b)TDIALOG:TDIALOG( 97 )
Called from: => TDIALOG:DISPLAY( 0 )
Called from: .\source\classes\DIALOG.PRG => TDIALOG:HANDLEEVENT( 1200 )
Called from: => DIALOGBOXINDIRECT( 0 )
Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE( 307 )
Called from: .\source\function\MSGRUN.PRG => MSGRUN( 54 )
Called from: nuevo1.prg => MAIN( 6 )

Ejemplo

#include "fivewin.ch"

Function Main

MsgRun( "Connecting to Internet...", "Please, wait",{ || oInternet := TInternet():New()})

Return

Re: Error BASE/1089 Argument error: ABS

PostPosted: Fri Jan 26, 2024 4:46 pm
by Antonio Linares
Estimado Carlos,

Usa este dll.ch
Code: Select all  Expand view
// Copyright FiveTech 1993-2022

#ifndef _DLL_CH
#define _DLL_CH

#ifndef _C_TYPES
   #define _C_TYPES
   #define VOID      0
   #define BYTE      1
   #define CHAR      2
   #define WORD      3

#ifdef __CLIPPER__
   #define _INT      4         // conflicts with Clipper Int()
#else
   #define _INT      7
#endif

   #define BOOL      5
   #define HDC       6
   #define LONG      7
   #define STRING    8
   #define LPSTR     9
   #define PTR      10
   #define _DOUBLE  11         // conflicts with BORDER DOUBLE
   #define DWORD    12
   
   #define LONGLONG 13
#endif

#translate NOREF([@]<x>) => <x>

#ifndef __HARBOUR__
  #ifndef __XPP__
     #ifndef __CLIPPER__
        #ifndef __C3__
           #define __CLIPPER__
        #endif
     #endif
  #endif
#endif

#ifndef __CLIPPER__
   #translate DLL32 => DLL
#endif

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

#xcommand DLL [<static:STATIC>] FUNCTION <FuncName>( [ <uParam1> AS <type1> ] ;
                                                     [, <uParamN> AS <typeN> ] ) ;
             AS <return> [<pascal:PASCAL>] [ FROM <SymName> ] LIB <*DllName*> ;
       => ;
          [<static>] function <FuncName>( [NOREF(<uParam1>)] [,NOREF(<uParamN>)] ) ;;
             local _hDLL := If( ValType( <DllName> ) == "N", <DllName>, LoadLibrary( <(DllName)> ) ) ;;
             local uResult ;;
             local cFarProc ;;
             local _pOld ;;
             if ValType( _hDLL ) == "P" ;;
               _pOld = _hDLL ;;
               _hDLL = PtrToNum( _hDLL ) ;;
             end ;;
             if Abs( _hDLL ) > 32 ;;
                cFarProc = GetProcAdd( _hDLL,;
                If( [ Empty( <SymName> ) == ] .t., <(FuncName)>, <SymName> ),;
                [<.pascal.>], <return> [,<type1>] [,<typeN>] ) ;;
                uResult = FWCallDLL( cFarProc [,<uParam1>] [,<uParamN>] ) ;;
                if ! Empty( _pOld ) ;;
                   _hDLL = _pOld ;;
                end ;;  
                If( ValType( <DllName> ) == "N",, FreeLibrary( _hDLL ) ) ;;
             else ;;
                MsgAlert( "Error code: " + LTrim( Str( _hDLL ) ) + " loading " + ;
                If( ValType( <DllName> ) == "C", <DllName>, Str( <DllName> ) ) ) ;;
             end ;;
          return uResult

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

#xcommand DLL32 [<static:STATIC>] FUNCTION <FuncName>( [ <uParam1> AS <type1> ] ;
                                                     [, <uParamN> AS <typeN> ] ) ;
             AS <return> [<pascal:PASCAL>] [ FROM <SymName> ] LIB <*DllName*> ;
       => ;
          [<static>] function <FuncName>( [NOREF(<uParam1>)] [,NOREF(<uParamN>)] ) ;;
             local _hDLL := If( ValType( <DllName> ) == "N", <DllName>, LoadLib32( <(DllName)> ) ) ;;
             local uResult ;;
             local cFarProc ;;
             local _pOld ;;
             if ValType( _hDLL ) == "P" ;;
               _pOld = _hDLL ;;
               _hDLL = PtrToNum( _hDLL ) ;;
             end ;;
             if Abs( _hDLL ) > 32 ;;
                cFarProc = GetProcAdd32( _hDLL,;
                If( [ Empty( <SymName> ) == ] .t., <(FuncName)>, <SymName> ),;
                [<.pascal.>], <return> [,<type1>] [,<typeN>] ) ;;
                uResult = FWCallDLL32( cFarProc [,<uParam1>] [,<uParamN>] ) ;;
                if ! Empty( _pOld ) ;;
                   _hDLL = _pOld ;;
                end ;;  
                If( ValType( <DllName> ) == "N",, FreeLib32( _hDLL ) ) ;;
             else ;;
                MsgAlert( "Error code: " + LTrim( Str( _hDLL ) ) + " loading " + ;
                If( ValType( <DllName> ) == "C", <DllName>, Str( <DllName> ) ) ) ;;
             end ;;
          return uResult

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

#endif

Re: Error BASE/1089 Argument error: ABS

PostPosted: Fri Jan 26, 2024 10:55 pm
by CARLOS ATUNCAR
#include "fivewin.ch"
#include "dll.ch"

Function Main

MsgRun( "Connecting to Internet...", "Please, wait",{ || oInternet := TInternet():New()})

Return


Compilado con Buildx.bat de la carpeta de ejemplos

Application
===========
Path and name: J:\Fwh2307\fwh\samples\nuevo1.exe (32 bits)
Size: 4,208,128 bytes
Compiler version: xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914)
FiveWin version: FWH 23.07
C compiler version: Borland/Embarcadero C++ 7.6 (32-bit)
Windows 10 64 Bits, version: 6.2, Build 9200

Time from start: 0 hours 0 mins 0 secs
Error occurred at: 01/26/24, 17:54:35
Error description: Error BASE/1089 Argument error: ABS
Args:
[ 1] = P 0x70B90000

Stack Calls
===========
Called from: => ABS( 0 )
Called from: .\source\winapi\WININET.PRG => WININET( 23 )
Called from: .\source\classes\INTERNET.PRG => TINTERNET:NEW( 28 )
Called from: nuevo1.prg => (b)MAIN( 7 )
Called from: .\source\function\MSGRUN.PRG => (b)MSGRUN( 47 )
Called from: .\source\classes\DIALOG.PRG => (b)TDIALOG:TDIALOG( 97 )
Called from: => TDIALOG:DISPLAY( 0 )
Called from: .\source\classes\DIALOG.PRG => TDIALOG:HANDLEEVENT( 1200 )
Called from: => DIALOGBOXINDIRECT( 0 )
Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE( 307 )
Called from: .\source\function\MSGRUN.PRG => MSGRUN( 54 )
Called from: nuevo1.prg => MAIN( 7 )

System
======
CPU type: AMD Ryzen 5 2400G with Radeon Vega Graphics 3593 Mhz
Hardware memory: 14285 megs

Free System resources: 90 %
GDI resources: 90 %
User resources: 90 %

Windows total applications running: 3
1 , J:\Fwh2307\fwh\samples\nuevo1.exe
2 GDI+ Window (AMDRSServ.exe),
3 GDI+ Window (nuevo1.exe), C:\WINDOWS\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.19041.3996_none_d954cb49e10154

Variables in use
================
Procedure Type Value
==========================
ABS
Param 1: P 0x70B90000
Local 1: U
Local 2: U
WININET
TINTERNET:NEW
Local 1: O Class: TINTERNET
Local 2: U
(b)MAIN
Param 1: O Class: TDIALOG
(b)MSGRUN
Param 1: U
(b)TDIALOG:TDIALOG
Param 1: O Class: TDIALOG
TDIALOG:DISPLAY
TDIALOG:HANDLEEVENT
Param 1: N 15
Param 2: N 0
Param 3: N 0
Local 1: O Class: TDIALOG
DIALOGBOXINDIRECT
Param 1: N 4915200
Param 2: C "€ s  P l e a s e , w a i t "
Param 3: N 0
Param 4: O Class: TDIALOG
TDIALOG:ACTIVATE
Param 1: U
Param 2: U
Param 3: B {|| ... }
Param 4: L .F.
Param 5: U
Param 6: L .T.
Param 7: B {|| ... }
Param 8: U
Param 9: U
Param 10: U
Param 11: U
Param 12: L .F.
Param 13: O Class: TDIALOG
Param 14: U
Local 1: O Class: TDIALOG
Local 2: N 0
Local 3: U
Local 4: U
Local 5: U
Local 6: O Class: TDIALOG
MSGRUN
Param 1: C "Connecting to Internet..."
Param 2: C "Please, wait"
Param 3: B {|| ... }
Local 1: U
Local 2: U
Local 3: O Class: TDIALOG
Local 4: N 229
Local 5: U
Local 6: L .F.
MAIN

Linked RDDs
===========
DBF
DBFFPT
DBFBLOB
DBFCDX
DBFNTX

DataBases in use
================

Classes in use:
===============
1 ERROR
2 HASHENTRY
3 HBCLASS
4 HBOBJECT
5 TWINDOW
6 TDIALOG
7 TBRUSH
8 TFONT
9 TREG32
10 TRECT
11 TINTERNET
12 TSTRUCT

Memory Analysis
===============
717 Static variables

Dynamic memory consume:
Actual Value: 0 bytes
Highest Value: 0 bytes

Re: Error BASE/1089 Argument error: ABS

PostPosted: Sat Jan 27, 2024 5:52 am
by Antonio Linares
Carlos,

Asegúrate de que eliminas otro dll.ch que tengas instalado y que usas el que te he proporcionado

El error que describes precisamente se solucionó con esta versión de dll.ch que te he proporcionado

Re: Error BASE/1089 Argument error: ABS

PostPosted: Wed Jan 31, 2024 12:57 am
by CARLOS ATUNCAR
Antonio Linares wrote:Carlos,

Asegúrate de que eliminas otro dll.ch que tengas instalado y que usas el que te he proporcionado

El error que describes precisamente se solucionó con esta versión de dll.ch que te he proporcionado


Buenas Noches Antonio,
Si he reemplazado el Dll.ch de la carpeta de Include he probado y sigue igual el problema he comparado el dll.ch que viene en la version 23-07 y es igual al que me has pasado.

Re: Error BASE/1089 Argument error: ABS

PostPosted: Wed Jan 31, 2024 5:52 am
by Antonio Linares
Estimado Carlos,

Te pido disculpas, pensé que el error venía por el uso de dll.ch y en realidad era por otra causa.

Tienes que modificar la función WinINet() en el fichero FWH\source\winapi\wininet.prg de esta forma:
Code: Select all  Expand view
function WinINet()

   if hWinINet == nil
      hWinINet = LoadLibrary( "WinINet.dll" )
      if ValType( hWinINet ) == "P"
         hWinINet = PtrToNum( hWinINet )
      endif  
      if Abs( hWinINet ) <= 32
         MsgStop( "Cannot load WinINet.dll!" )
      endif
   endif

return hWinINet

Re: Error BASE/1089 Argument error: ABS

PostPosted: Fri Feb 02, 2024 12:57 am
by CARLOS ATUNCAR
Saludos, si se soluciono ahora tendre que agregar ese prg a mis proyectos ese cambio me imagino vendra en las proximas versiones

Re: Error BASE/1089 Argument error: ABS

PostPosted: Fri Feb 02, 2024 10:53 am
by Antonio Linares
Si, está incluido para la proxima versión de FWH :-)