Page 1 of 1

Ayuda Urgente Error al Compilar SOLUCIONADO

Posted: Wed Feb 20, 2019 5:02 pm
by remtec
Amigos

Muy buen dia.

Se me ha generado un error al compilar:

Error: Unresolved external '_HB_FUN_ABRE_DBF' referenced from C:\UTIL\INFOEXA\OBJ\INGRESO.OBJ
Error: Unable to perform link

Esto ocurre, ya que agregue un PRG, llamado Multiuso.Prg, que abre las dbf.

Code: Select all

#include "FiveWin.ch"
#include "Common.ch"

#define NET_WAIT     0.5   // Seconds to wait between between retries
#define NET_SECS     2     // Number of seconds to continue retry

// filename=Nombre de la Dbf, nro_sele = Selec, is_ex = Shared/Exclusive, Ali = Alias

STATIC FUNCTION Abre_dbf(filename,nro_sele,is_ex,Ali)
        Local Paramcnt
        set exclusive off

        If file('filename..dbf')
         If nro_sele<10
                nro_sele=str(nro_sele,1)
         Else
                nro_sele=str(nro_sele,2)
         Endif
         sele &nro_sele
         ij=100
         For ij=1 to 100
                 nSeconds=5
                 nb=0
                 DEFAULT nSeconds TO NET_SECS
                 DO WHILE (nSeconds > 0)

                            If Ali#""
                         IF is_ex
                                 USE &filename EXCLUSIVE Alias &Ali
                            Else
                                     USE &filename SHARED     Alias &Ali
                         Endif
                            Else
                         IF is_ex
                                 USE &filename EXCLUSIVE
                            Else
                                     USE &filename SHARED
                         Endif
                            Endif
                        nb=0
                            INKEY( NET_WAIT )     // Wait
                            nSeconds -= NET_WAIT
                 ENDDO
                 If nb=0
                            Msgwait( "Espere Archivo Ocupado","ESPERE",5 )
                 Else
                            exit
                 Endif
         Next ij
        Else
         MsgStop(" ERROR NO EXISTE ARCHIVO "+filename)
        Endif
Return nil
 
Este en el compilado:

Code: Select all

C:\Util\Infoexa>if not exist obj md obj 

C:\Util\Infoexa>c:\util\bcc73\bin\make -fcompi.mak 
MAKE Version 5.41  Copyright (c) 1987, 2014 Embarcadero Technologies, Inc.
    echo off
    echo c:\util\bcc73\lib\c0w32.obj + > b32.bc
    echo obj\Infoexa.obj obj\Ingreso.obj obj\Actu_usu.obj obj\Multiuso.obj , + >> b32.bc
    echo Infoexa.exe, + >> b32.bc
    echo Infoexa.map, + >> b32.bc
    echo c:\util\fwh1709\lib\FiveH.lib c:\util\fwh1709\lib\FiveHC.lib + >> b32.bc
    echo c:\util\hb32\lib\hbwin.lib + >> b32.bc
    echo c:\util\hb32\lib\gtgui.lib + >> b32.bc
    echo c:\util\hb32\lib\hbrtl.lib + >> b32.bc
    echo c:\util\hb32\lib\hbvm.lib + >> b32.bc
    echo c:\util\hb32\lib\hblang.lib + >> b32.bc
    echo c:\util\hb32\lib\hbmacro.lib + >> b32.bc
    echo c:\util\hb32\lib\hbrdd.lib + >> b32.bc
    echo c:\util\hb32\lib\rddntx.lib + >> b32.bc
    echo c:\util\hb32\lib\rddcdx.lib + >> b32.bc
    echo c:\util\hb32\lib\rddfpt.lib + >> b32.bc
    echo c:\util\hb32\lib\hbsix.lib + >> b32.bc
    echo c:\util\hb32\lib\hbdebug.lib + >> b32.bc
    echo c:\util\hb32\lib\hbcommon.lib + >> b32.bc
    echo c:\util\hb32\lib\hbpp.lib + >> b32.bc
    echo c:\util\hb32\lib\hbcpage.lib + >> b32.bc
    echo c:\util\hb32\lib\hbcplr.lib + >> b32.bc
    echo c:\util\hb32\lib\hbct.lib + >> b32.bc
    echo c:\util\hb32\lib\hbpcre.lib + >> b32.bc
    echo c:\util\hb32\lib\xhb.lib + >> b32.bc
    echo c:\util\hb32\lib\hbziparc.lib + >> b32.bc
    echo c:\util\hb32\lib\hbmzip.lib + >> b32.bc
    echo c:\util\hb32\lib\hbzlib.lib + >> b32.bc
    echo c:\util\hb32\lib\minizip.lib + >> b32.bc
    echo c:\util\hb32\lib\png.lib + >> b32.bc
    echo c:\util\hb32\lib\hbusrrdd.lib + >> b32.bc
    rem Uncomment these two lines to use Advantage RDD
    rem echo c:\util\hb32\rddads.lib + >> b32.bc
    rem echo c:\util\hb32\Ace32.lib + >> b32.bc
    echo c:\util\bcc73\lib\cw32.lib + >> b32.bc
    echo c:\util\bcc73\lib\uuid.lib + >> b32.bc
    echo c:\util\bcc73\lib\import32.lib + >> b32.bc
    echo c:\util\bcc73\lib\ws2_32.lib + >> b32.bc
    echo c:\util\bcc73\lib\psdk\odbc32.lib + >> b32.bc
    echo c:\util\bcc73\lib\psdk\nddeapi.lib + >> b32.bc
    echo c:\util\bcc73\lib\psdk\iphlpapi.lib + >> b32.bc
    echo c:\util\bcc73\lib\psdk\msimg32.lib + >> b32.bc
    echo c:\util\bcc73\lib\psdk\psapi.lib + >> b32.bc
    echo c:\util\bcc73\lib\psdk\rasapi32.lib + >> b32.bc
    echo c:\util\bcc73\lib\psdk\gdiplus.lib + >> b32.bc
    echo c:\util\bcc73\lib\psdk\shell32.lib,, + >> b32.bc
    echo Infoexa.res >> b32.bc
    c:\util\bcc73\bin\ilink32 -Gn -aa -Tpe -s -v @b32.bc
Turbo Incremental Link 6.80 Copyright (c) 1997-2017 Embarcadero Technologies, Inc.
Error: Unresolved external '_HB_FUN_ABRE_DBF' referenced from C:\UTIL\INFOEXA\OBJ\INGRESO.OBJ
Error: Unable to perform link

** error 2 ** deleting Infoexa.exe
 
Agradeciendo su ayuda, les saluda.
Antonio

Re: Ayuda Urgente Error al Compilar

Posted: Wed Feb 20, 2019 5:43 pm
by Carles
Antonio

Quita STATIC de la declaracion

Code: Select all

FUNCTION Abre_dbf(filename,nro_sele,is_ex,Ali)
...

Re: Ayuda Urgente Error al Compilar

Posted: Wed Feb 20, 2019 5:45 pm
by carlos vargas
Simple, el compiladore no encuentra esa funcion ya que esta definida como static function por lo que solo en visible en el mismo prg donde esta creada, no en otros modulos.
quitale el static

salu2
carlos vargas

Re: Ayuda Urgente Error al Compilar

Posted: Wed Feb 20, 2019 6:10 pm
by remtec
Hola Carles y Carlos Vargas

Muchas gracias Maestros, funciono perfecto.

Saludos
Antonio.