Page 1 of 1

DLL32 FUNCTION GRAN GRAN PROBLEMA

PostPosted: Tue Mar 28, 2017 4:22 pm
by devtuxtla
Hola FiveWinners

Estoy actualizando una aplicacion que utiliza varias dll de terceros, las cuales acceso a traves de DLL32 FUNCTION

Con esta nueva version de FWH 17.02 / xHarbour 1.2.3 ( Build 20170312) / BCC 7.2, TODOS las funciones que se encuentran en los DLL'S dan el mismo error.

NO se donde esta el problema

Alguien sabe como corregir este error ?

Code: Select all  Expand view

+--------------------------------------------------------------------------------+
|Error BASE/1089  Argument error: ABS Arguments: ( [ 1] = Type: P Val: 748B0000) |
|(Quit)                                                                          |
|Error BASE/1089  Argument error: ABS Arguments: ( [ 1] = Type: P Val: 748B0000) |
|                                                                                |
|Error at ...: ABS(0) in Module:                                                 |
|Called from : ANIMATEWINDOW(0) in Module: C:\SISTPAK\PRG\SISTPACK.prg            |
|Called from : NW_ANIMA(2454) in Module: C:\SISTPAK\PRG\SISTPACK.prg              |
|Called from : (b)N06_SISTPACK(511) in Module: C:\SISTPAK\PRG\SISTPACK06.PRG         |
|Called from : TDIALOG:INITIATE(706) in Module: .\source\classes\DIALOG.PRG      |
|Called from : TDIALOG:HANDLEEVENT(898) in Module: .\source\classes\DIALOG.PRG   |
|Called from : DIALOGBOX(0) in Module:                                           |
|Called from : TDIALOG:ACTIVATE(296) in Module: .\source\classes\DIALOG.PRG      |
|Called from : N06_SISTPACK(511) in Module: C:\SISTPAK\PRG\SISTPACK06.PRG            |
|Called from : (b)W_MENU(1652) in Module: C:\SISTPAK\PRG\SISTPACK.prg             |
|Called from : TMENU:COMMAND(1238) in Module: .\source\classes\MENU.PRG          |
|Called from : TWINDOW:COMMAND(1080) in Module: .\source\classes\WINDOW.PRG      |
|Called from : TMDIFRAME:COMMAND(262) in Module: .\source\classes\MDIFRAME.PRG   |
|Called from : TMDIFRAME:HANDLEEVENT(0) in Module:                               |
|Called from : _FWH(3325) in Module: .\source\classes\WINDOW.PRG                 |
|Called from : WINRUN(0) in Module:                                              |
|Called from : TMDIFRAME:ACTIVATE(1036) in Module: .\source\classes\WINDOW.PRG   |
|Called from : SISTPACK(685) in Module: C:\SISTPAK\PRG\SISTPACK.prg                 |
|                                                                                |
|                                                                                |
+--------------------------------------------------------------------------------+
 

Re: DLL32 FUNCTION GRAN GRAN PROBLEMA

PostPosted: Tue Mar 28, 2017 4:50 pm
by karinha
BASE/1089

Invalid argument passed to function
Description
The argument (or arguments) passed to a function is not an numeric value
Example(s)
ABS

Re: DLL32 FUNCTION GRAN GRAN PROBLEMA

PostPosted: Tue Mar 28, 2017 5:03 pm
by devtuxtla
Hola Karinha.

NO deberia ...

NO debo cambiar el llamado a las DLL´s el mensaje es para todos los llamados a los metodos definidos en las DLL, en caso de la animacion de ventas es un ejemplo.

Saludos

Re: DLL32 FUNCTION GRAN GRAN PROBLEMA

PostPosted: Tue Mar 28, 2017 5:24 pm
by devtuxtla
Otro ejemplo de uso de DLL's con error.

Este mismo error se genera en otro sistema que usa metodos definidos en DLL's

Code: Select all  Expand view

Subsystem Call ....: BASE
System Code .......: 1089
Default Status ....: .F.
Description .......: Argument error
Operation .........: ABS
Arguments .........:  [ 1] = Type: P Val: F1E0000
Involved File .....:
Dos Error Code ....: 0

 Trace Through:
----------------
ABS                   :       0 in Module:
DLL_CHECKKEY          :       0 in Module: C:\ACCMEDIA\PRG\ACCMEDIA64.prg
N63_VERIFICADLL       :      87 in Module: C:\ACCMEDIA\PRG\ACCMEDIA63.prg
N60_GENERA            :   1,095 in Module: C:\ACCMEDIA\PRG\ACCMEDIA60.prg
N11R_GENERA           :   1,389 in Module: C:\ACCMEDIA\PRG\ACCMEDIA11o.prg
N11O_ACERT            :     572 in Module: C:\ACCMEDIA\PRG\ACCMEDIA11o.prg
(b)N11E_BAR           :     432 in Module: C:\ACCMEDIA\PRG\ACCMEDIA11e.prg
(b)MSGMETER           :      28 in Module: .\source\function\MSGMETER.PRG
(b)TDIALOG:TDIALOG    :      95 in Module: .\source\classes\DIALOG.PRG
TDIALOG:DISPLAY       :       0 in Module:
TDIALOG:HANDLEEVENT   :     901 in Module: .\source\classes\DIALOG.PRG
DIALOGBOXINDIRECT     :       0 in Module:
TDIALOG:ACTIVATE      :     296 in Module: .\source\classes\DIALOG.PRG
MSGMETER              :      31 in Module: .\source\function\MSGMETER.PRG
(b)N11E_BAR           :     432 in Module: C:\ACCMEDIA\PRG\ACCMEDIA11e.prg
TSBUTTON:CLICK        :     850 in Module: C:\TSBUTT~1\SOURCE\CLASSES\TSBUTTON.PRG
TCONTROL:HANDLEEVENT  :   1,685 in Module: .\source\classes\CONTROL.PRG
TSBUTTON:HANDLEEVENT  :   1,317 in Module: C:\TSBUTT~1\SOURCE\CLASSES\TSBUTTON.PRG
_FWH                  :   3,325 in Module: .\source\classes\WINDOW.PRG
WINRUN                :       0 in Module:
TMDIFRAME:ACTIVATE    :   1,036 in Module: .\source\classes\WINDOW.PRG
ACCMEDIA              :     685 in Module: C:\ACCMEDIA\PRG\ACCMEDIA.prg


############################## Video Screen Dump ##############################

+--------------------------------------------------------------------------------+
|Called from : DLL_CHECKKEY(0) in Module: C:\ACCMEDIA\PRG\ACCMEDIA64.prg     |
|Called from : N63_VERIFICADLL(87) in Module: C:\ACCMEDIA\PRG\ACCMEDIA63.prg       |
|Called from : N60_GENERA(1095) in Module: C:\ACCMEDIA\PRG\ACCMEDIA60.prg     |
|Called from : N11R_GENERA(1389) in Module: C:\ACCMEDIA\PRG\ACCMEDIA11o.prg     |
|Called from : N11O_ACERT(572) in Module: C:\ACCMEDIA\PRG\ACCMEDIA11o.prg     |
|Called from : (b)N11E_BAR(432) in Module: C:\ACCMEDIA\PRG\ACCMEDIA11e.prg          |
|Called from : (b)MSGMETER(28) in Module: .\source\function\MSGMETER.PRG         |
|Called from : (b)TDIALOG:TDIALOG(95) in Module: .\source\classes\DIALOG.PRG     |
|Called from : TDIALOG:DISPLAY(0) in Module:                                     |
|Called from : TDIALOG:HANDLEEVENT(901) in Module: .\source\classes\DIALOG.PRG   |
|Called from : DIALOGBOXINDIRECT(0) in Module:                                   |
|Called from : TDIALOG:ACTIVATE(296) in Module: .\source\classes\DIALOG.PRG      |
|Called from : MSGMETER(31) in Module: .\source\function\MSGMETER.PRG            |
|Called from : (b)N11E_BAR(432) in Module: C:\ACCMEDIA\PRG\ACCMEDIA11e.prg          |
|Called from : TSBUTTON:CLICK(850) in Module: C:\TSBUTT~1\SOURCE\CLASSES\TSBUTTON|
|.PRG                                                                            |
|Called from : TCONTROL:HANDLEEVENT(1685) in Module: .\source\classes\CONTROL.PRG|
|                                                                                |
|Called from : TSBUTTON:HANDLEEVENT(1317) in Module: C:\TSBUTT~1\SOURCE\CLASSES\T|
|SBUTTON.PRG                                                                     |
|Called from : _FWH(3325) in Module: .\source\classes\WINDOW.PRG                 |
|Called from : WINRUN(0) in Module:                                              |
|Called from : TMDIFRAME:ACTIVATE(1036) in Module: .\source\classes\WINDOW.PRG   |
|Called from : ACCMEDIA(685) in Module: C:\ACCMEDIA\PRG\ACCMEDIA.prg                 |
+--------------------------------------------------------------------------------+

Re: DLL32 FUNCTION GRAN GRAN PROBLEMA

PostPosted: Tue Mar 28, 2017 5:40 pm
by karinha
como estas haciendo? Algo Asi?

Code: Select all  Expand view

   local cDllName:="BEMAFI32.DLL"

   SET DATE FRENCH

   hFiscalDl2 := LoadLibrary(cDllName)

   if Abs( hFiscalDL2 ) <= 32

      MsgAlert( "Error code: " + LTrim( Str( hFiscalDL2 ) ) + " loading " + cDllName )

      Quit

   endif
 



Code: Select all  Expand view

DLL32 FUNCTION BmFormaPg( cNomeDocto   AS STRING ,;
                          cValorDocto  AS STRING ) AS LONG PASCAL;
      FROM "Bematech_FI_EfetuaFormaPagamento" LIB XDLL
 


Saludos.


Re: DLL32 FUNCTION GRAN GRAN PROBLEMA

PostPosted: Tue Mar 28, 2017 7:17 pm
by armando.lagunas
Code: Select all  Expand view
DLL32 FUNCTION AnimateWindow( hWnd As LONG, dwTime As LONG, dwFlags As LONG ) AS LONG PASCAL FROM "AnimateWindow" LIB "user32.DLL"
 

Re: DLL32 FUNCTION GRAN GRAN PROBLEMA

PostPosted: Tue Mar 28, 2017 8:17 pm
by devtuxtla
Hola Armando / Karinha

Gracias por responder

El problema esta en DLL.CH

Code: Select all  Expand view
#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 ;;
             if Abs( _hDLL ) > 32 ;;  <------- AQUI GENERA EL ERROR
                cFarProc = GetProcAdd( _hDLL,;
                If( [ Empty( <SymName> ) == ] .t., <(FuncName)>, <SymName> ),;
                [<.pascal.>], <return> [,<type1>] [,<typeN>] ) ;;
                uResult = FWCallDLL( cFarProc [,<uParam1>] [,<uParamN>] ) ;;
                If( ValType( <DllName> ) == "N",, FreeLibrary( _hDLL ) ) ;;
             else ;;
                MsgAlert( "Error code: " + LTrim( Str( _hDLL ) ) + " loading " + ;
                If( ValType( <DllName> ) == "C", <DllName>, Str( <DllName> ) ) ) ;;
             end ;;
          return uResult
 

Re: DLL32 FUNCTION GRAN GRAN PROBLEMA

PostPosted: Tue Mar 28, 2017 9:29 pm
by Antonio Linares
Prueba a reemplazar en tu código DLL32 FUNCTION ... por DLL FUNCTION ...

Re: DLL32 FUNCTION GRAN GRAN PROBLEMA

PostPosted: Tue Mar 28, 2017 10:52 pm
by devtuxtla
Hola Antonio.

Gracias por contestar..

He hecho e cambio, y genera el mismo error, con cualquier llamado al metodo en el DLL

Code: Select all  Expand view
Subsystem Call ....: BASE
System Code .......: 1089
Default Status ....: .F.
Description .......: Argument error
Operation .........: ABS
Arguments .........:  [ 1] = Type: P Val: 748B0000
Involved File .....:
Dos Error Code ....: 0

 Trace Through:
----------------
ABS                   :       0 in Module:
GEN_VALIDAKEY         :        C:\MASTRACC\PRG\Validakey.prg
 

Re: DLL32 FUNCTION GRAN GRAN PROBLEMA

PostPosted: Tue Mar 28, 2017 11:47 pm
by cnavarro
Puedes poner el script que utilizas para generar la aplicacion?

Re: DLL32 FUNCTION GRAN GRAN PROBLEMA

PostPosted: Wed Mar 29, 2017 3:22 am
by devtuxtla
Hola FiveWinnes.

Para resolver este problema de la DLL's di un paso a tras...

Generé la aplicacion con la version de FWH17.02 , xHarbour 1.2.3. (Build 20161218) y BCC 7.0

Y problema resuelto... los metodos de las DLL's se ejecutan bien...

Tal vez es necesario esperar una poco antes de usar BCC 7.2, aun que no se si es quien causa el problema.

Saludos

Re: DLL32 FUNCTION GRAN GRAN PROBLEMA

PostPosted: Wed Mar 29, 2017 8:39 am
by Antonio Linares