Cannot Find (and do not Want) DEBUG.LIB

354 views
Skip to first unread message

Mel Smith

unread,
Mar 3, 2020, 6:18:38 PM3/3/20
to Harbour Users
Hi All:

   I'm  building a small local use App that I want to work without changes between Harbour and xHarbour.

   So far, it works quickly and easily in xHarbour

   In Harbour, the following Error Log is created which shows that I'm missing a file named DEBUG.LIB.
   But, I  DO NOT WANT this lib to be included. In my .hbp file I inserted: -debug-  which should stop any debug routine from being included -- I think ?

   So, it compiles O.K. in Harbour, but fails the link step because of this missing file.

   Any suggestions please ?

-Mel Smith


   ***** Error Log File *****
hbmk2: Processing: \harbour\contrib\hbct\hbct.hbc
hbmk2: Compiling Harbour sources...
Harbour 3.2.0dev (r2002240732)
Copyright (c) 1999-2020, https://harbour.github.io/
Compiling 'source\whois.prg'...

100

Lines 124, Functions/Procedures 1
Generating C source output to '\cgi\app\whois.c'... Done.
hbmk2: Compiling...
\cgi\app\whois.c:
hbmk2: Linking... whoishb.exe
Turbo Incremental Link 6.90 Copyright (c) 1997-2017 Embarcadero Technologies, Inc.
Fatal: Unable to open file 'DEBUG.LIB'
hbmk2[whois]: Error: Running linker. 2
ilink32.exe @C:\Users\SYNTEL~1\AppData\Local\Temp\rw254m.lnk

***** End of Error Log File *****


Mel Smith

unread,
Mar 3, 2020, 6:30:47 PM3/3/20
to Harbour Users
HI Again:

   For your further  information, ere is a portion of my Build Batch File, and then my .hbp file

***** middle action portion of my build file *****
SET PATH=\BORLAND\BCC74;\BORLAND\BCC74\BIN;
DEL %1.EXE
\HARBOUR\BIN\HBMK2 %1.HBP -xhb \harbour\contrib\hbct\hbct.hbc > HRBAPP.LOG 2>&1
SET PATH=%_PATH%
IF EXIST %1.EXE GOTO GOODBLD
ECHO .
ECHO .
ECHO .  Failed to create executable.
ECHO .
ECHO . View HRBAPP.LOG to see what happened.
ECHO .
PAUSE
ECHO .
GOTO ENDJOB
***** end of part of the Build Batch File


***** My .HBP file for this little app *****
#whois.hbp
#=====
#
-strip
-info
-debug-
#-trace
-static
-st
-Lc:\borland\bcc74\lib\win32;
-workdir=\cgi\app\
-rebuildall
-owhoishb

source\whois
***** end of .hbp file *****

mstuff kstuff

unread,
Mar 3, 2020, 10:37:20 PM3/3/20
to Harbour Users
Mel,

I' new to playing with .hbp files. But, here goes anyway.

I don't think that the line -debug-  would even be necessary.

Unless, a debug function is being called by your prg or
some other function.

If it is being called by another function, I don't think you
could ever override it without omitting it or rewriting it.

Mike


 

mstuff kstuff

unread,
Mar 3, 2020, 10:59:16 PM3/3/20
to Harbour Users
Mel,

One other thing.
Re-looking at the hbp file. I noticed the #-trace.

That jogged my memory.
I have seen quite a few harbour *.c  source file file calling
some sort of debug or trace functions. It also seemed if I
remember correctly there wasn't any if it was in the debug
mode or not.

Because you commented it out it out, you already thought
of that.

Sorry, I'm getting in over my head.
Mike


Mel Smith

unread,
Mar 4, 2020, 10:11:37 AM3/4/20
to Harbour Users
Hi Mike:


One other thing.
Re-looking at the hbp file. I noticed the #-trace.

   Yes, in desparation, I commented that our. It didn't help :(( 

That jogged my memory.
I have seen quite a few harbour *.c  source file file calling
some sort of debug or trace functions. It also seemed if I
remember correctly there wasn't any if it was in the debug
mode or not.

Because you commented it out it out, you already thought
of that.

Sorry, I'm getting in over my head.
Mike

Yes, I don't even know *where* this debug.lib file is located or even why hbmk2.exe or ilink32.exe are looking for it. Or, in what make file is it specified ?? 

I'm totally frustrated by this 'missing' lib.

Thanks for looking at my problem.

-Mel

José M. C. Quintas

unread,
Mar 4, 2020, 10:23:43 AM3/4/20
to harbou...@googlegroups.com
Seems to me that your installation is wrong.

hbct.hbc, not all path

-Lc:\borland\bcc74\lib\win32  this is not needed, except if installation
is wrong

-debug-  do not know if this works for retire a lib, and may be you do
not have it

why not

hbmk2 %1.hbp hbbct.hbc -quiet

José M. C. Quintas
> --

Ash

unread,
Mar 4, 2020, 10:31:11 AM3/4/20
to Harbour Users
Hello Mel,

I use MinGW for building my applications.

There is a library called libhbdebug.a in Harbour LIB folder. If I rename this library to something else, I am not able to build my applications. So, it seems that this library is linked into my application whether I like it or not.

What you need to do is to build this library, known as debug.lib in BCC version of Harbour, and try building your application again.

Regards.
Ash

mstuff kstuff

unread,
Mar 4, 2020, 10:57:33 AM3/4/20
to Harbour Users
Mel,

Since I stuck my foot in it, I felt obligated.

I found this stuff.
bcc5.5 was the last free compiler that I could
find. It does not have a DEBUG.LIB.

Borland is now part of
https://www.microfocus.com/
They don't know much about Borland.
I imagine no more free compilers.

Embarcadero's C++ Compiler/BCC102 doesn't have a
DEBUG.LIB either.

It may have been part of a 3rd party prg with the
lib. Is your prg all your source? If not, try
commenting out other functions one at a time.

Are you using Linux? If not, why not try the hb32
binaries with mingw?

Mike

Ash

unread,
Mar 4, 2020, 11:26:11 AM3/4/20
to Harbour Users
Hello Mike,

I think DEBUG.LIB is part of Harbour compiler. 

Regards.
Ash

mstuff kstuff

unread,
Mar 4, 2020, 11:31:55 AM3/4/20
to Harbour Users
Speaking of paths.

I use the hb32 w/MinGW.

My simple cl.bat file consists of:
set path=D:\PRG\hb\hb32\bin\;D:\PRG\hb\hb32\lib\;D:\PRG\hb\hb32\include\

hbmk2.exe <prg name> -trace -gui  <libs like: -lgtwvT -lhbct -lhbwin>

pause
-----------------

My hbp cl.bat file consists of:
the same path
hbmk2.exe hbmk.hbp

the hbmk.hbp ----------------
-o<file name out (no .exe>
-trace
-gui

-lhbwin
hbnf.hbc
hbmisc.hbc

< the prg names list (with .prg)>
-----------------
I didn't have add any other paths.

Mike

Mel Smith

unread,
Mar 4, 2020, 12:22:36 PM3/4/20
to Harbour Users
Hi Mike an Ash:
   I'm giving up on this now. 
   I believe that Harbour built under Borland can no longer create working apps for me. I just don't have the brainpower to figure out these crazy problems.

Here's my latest error logbelow -- after making several changes 
   So, now its looking for VM.LIB and many others -- instead of HBVM.LIB.     Geez !!!

-Mel

***** latest iteration of my error log *****
hbmk2: Compiling Harbour sources...
hbmk2: Harbour compiler command:
C:\HARBOUR\bin\win\bcc\harbour.exe -n source\whois.prg -b- -o\cgi\app\ -ic:\BORLAND\BCC74\Include -ic:\BORLAND\BCC74\Include\dinkumware -ic:\BORLAND\BCC74\Include\windows\crtl -ic:\BORLAND\BCC74\Include\windows\sdk -iC:\HARBOUR\include
Harbour 3.2.0dev (r2002240732)
Copyright (c) 1999-2020, https://harbour.github.io/
Compiling 'source\whois.prg'...

100

Lines 120, Functions/Procedures 1
Generating C source output to '\cgi\app\whois.c'... Done.
hbmk2: Compiling...
hbmk2: C/C++ compiler command:
bcc32.exe -c -q -CP437 -d -O2 -OS -Ov -Oc -Oi -6  -tWM -w -Q -w-sig- -n\cgi\app\ -Ic:\BORLAND\BCC74\Include -Ic:\BORLAND\BCC74\Include\dinkumware -Ic:\BORLAND\BCC74\Include\windows\crtl -Ic:\BORLAND\BCC74\Include\windows\sdk -IC:\HARBOUR\include \cgi\app\whois.c
\cgi\app\whois.c:
hbmk2: Linking... whoishb.exe
hbmk2: Linker command:
ilink32.exe @C:\Users\SYNTEL~1\AppData\Local\Temp\8630at.lnk
hbmk2: Linker script:
-Gn -Tpe -Lc:\BORLAND\BCC74\Lib;c:\BORLAND\BCC74\Lib\PSDK;C:\HARBOUR\lib\win\bcc;c:\borland\bcc74\lib\win32;c:\CGI\lib  -ap c0x32.obj \cgi\app\whois.obj, whoishb.exe, nul, debug.lib vm.lib rtl.lib lang.lib codepage.lib gtcgi.lib gtpca.lib gtstd.lib gtwin.lib gtwvt.lib gtgui.lib rdd.lib usrrdd.lib dbfntx.lib dbfcdx.lib dbfnsx.lib dbffpt.lib rdd.lib hsx.lib hbsix.lib macro.lib pp.lib common.lib winmm.lib kernel32.lib user32.lib gdi32.lib advapi32.lib ws2_32.lib iphlpapi.lib winspool.lib comctl32.lib comdlg32.lib shell32.lib uuid.lib ole32.lib oleaut32.lib mpr.lib mapi32.lib imm32.lib msimg32.lib wininet.lib   cw32mt.lib import32.lib, ,
Turbo Incremental Link 6.90 Copyright (c) 1997-2017 Embarcadero Technologies, Inc.
Fatal: Unable to open file 'VM.LIB'
hbmk2[whois]: Error: Running linker. 2
ilink32.exe @C:\Users\SYNTEL~1\AppData\Local\Temp\8630at.lnk
 

mstuff kstuff

unread,
Mar 4, 2020, 12:27:53 PM3/4/20
to Harbour Users
Mel,

FOUND  2  DEBUG.LIB ssss

There is one installed in HB_bc_hwgui  154K 11/8/2007
and one installed in        HB_bc_oohg   180K 11/6/2008

Both are for Borland.
Is part of your prg  from one of those?

Hope that's the answer.
Mike

mstuff kstuff

unread,
Mar 4, 2020, 12:41:56 PM3/4/20
to Harbour Users
Mel,

Ha, Ha...

VM.LIB  is in  HB_bc_oohg  also.

Looks like you need to install oohg also.

Mike

Mel Smith

unread,
Mar 4, 2020, 1:37:23 PM3/4/20
to Harbour Users
Hi Mike:


On Wednesday, March 4, 2020 at 10:27:53 AM UTC-7, mstuff kstuff wrote:
Mel,

FOUND  2  DEBUG.LIB ssss

There is one installed in HB_bc_hwgui  154K 11/8/2007
and one installed in        HB_bc_oohg   180K 11/6/2008

Both are for Borland.
Is part of your prg  from one of those?

   No, I don't use either of those.
   What I *did* do is use DEBUG.LIB from the c:\xhb7432\lib --- even though it was built for xHarbour.
   ... and that got me past *that* missing lib.

   But, then I ran into my current set of libs that were misnamed. :((

-Mel

Mel Smith

unread,
Mar 4, 2020, 1:58:30 PM3/4/20
to Harbour Users
As a final note, here is my local app which I had hoped to be compilable and linkable without change between Harbour and xHarbour


***** the prg *****
// read-in two leading octets from stdin, and search Apache config.conf to see who this is.

FUNCTION MAIN(cINP)
local I,csrc,cdst,nbytes,aresary,nleninp,aOCTETS,nOCTETS,cOCT1,cOCT2,lFound,aRecNos,nRecno

PRIVATE GCGIDBF,GCONWRKN,GFCON,GFCONFIL,GFCONNDX
GCGIDBF := "C:\CGI\DBF\"
GCONWRKN := 2
if empty(cINP)
   cINP := ""
endif

cINP := alltrim(lower(cINP))
if ATAIL(cINP) == "."
   cINP := left(cINP,len(cINP)-1)   // getting rid of final dot
endif

nLENINP := len(cINP)

if nleninp == 0
   ALERT("You entered: "+cINP+"  Please Enter 1st two complete octets of a visiting URL. e.g., 123.543.")
   RETURN NIL
endif

// examine url for two octets
aOCTETS := HB_ATOKENS(cINP,".")  // gets an array of 'hopefully' two tokens
nOCTETS := len(aOCTETS)    // should be 2 octets
if nOCTETS <> 2
   alert("cINP="+cINP+" Num of octets="+NTOC(nOCTETS)+" Enter *two* octets")
ENDIF
cOCT1 := alltrim(aOCTETS[1])
if val(cOCT1) <= 0 .OR. val(cOCT1) > 255
   alert("Illegal Octet 1 Value.")
   RETURN NIL
endif

cOCT2 := alltrim(aOCTETS[2])
if val(cOCT2) <= 0 .OR. val(cOCT2) > 255
   alert("Illegal Octet 2 Value.: **"+cOCT2+"**")
   RETURN NIL
endif

GFCON   := GCGIDBF + "TEMP2"
GFCONFIL:= GFCON   + ".DBF"
GFCONNDX:= GFCON   + ".CDX"

FERASE(GFCONFIL)
FERASE(GFCONNDX)
aRESARY := {}

IF .NOT. FILE(GFCONFIL)    // THEN CREATE IT
   AADD(aRESARY,{"CONFTEXT","C",80,0})
   DBCREATE(GFCON,aRESARY)
   aRESARY := NIL
ENDIF


csrc := "c:\apache\conf\httpd.conf"
cdst := "c:\cgi\dbf\httpd.cnf"
nbytes := filecopy(csrc,cdst)
if nbytes <= 0
   Alert("Failed to copy HTTPD.CONF to local dir. nbytes= "+ntoc(nbytes))
endif

SELECT (GCONWRKN)
USE (GFCON) ALIAS WHOIS EXCLUSIVE
ZAP

append from (cDST) SDF


// Now go looking for the unput Url Octets
GOTO TOP
// rebuild the cINV vrbl
cINP := " "+cOCT1 +"." + cOCT2 +"."


SET FILTER TO (cINP $ FIELD->CONFTEXT)
GOTO TOP

lFound := .NOT. EOF()
if .not. lFound
   CLOSE DATABASES
   alert("NO SUCH URL Root(s) found in Apache Configuration File.")
   RETURN NIL
endif

// so, at least One record is found. Then print on console the line just ahead of the located URL
goto top
CLS
?
? "REPORT OF URL ACCESS by Entered URL: " + cINP+ " are Shown Below"
?

aRecnos := {}
nRecno := 0
do while .not. eof()
   nRecno := recno()
   aadd(aRecnos,(nRecno-1))
   skip
enddo
set filter to
GOTO TOP
FOR I = 1 to len(aRecnos)
   nRecno := aRecnos[i]
   GOTO nRECNO
   ? FIELD->CONFTEXT
   GOTO nRECNO+1
   ? FIELD->CONFTEXT

next
CLOSE DATABASES
?
?
? "Press Any Key to Exit Now"
inkey(0)
RETURN NIL

Ash

unread,
Mar 4, 2020, 2:32:41 PM3/4/20
to Harbour Users
Hello Mel,

Your app compiles and links without any errors in Harbour/MinGW environment. I use the following command:

hbmk2 t.prg hbct.hbc

Where t.prg is your app.

Regards.
Ash

mstuff kstuff

unread,
Mar 4, 2020, 2:40:51 PM3/4/20
to Harbour Users
Mel,

Yea, It was okay on mine also. hb32 w/mingw
hbmk2.exe test -trace -gui  -lhbct

I even got the first alert.

Mike

Mel Smith

unread,
Mar 4, 2020, 2:44:44 PM3/4/20
to Harbour Users
Hi Ash:


On Wednesday, March 4, 2020 at 12:32:41 PM UTC-7, Ash wrote:
Hello Mel,

Your app compiles and links without any errors in Harbour/MinGW environment. I use the following command:

hbmk2 t.prg hbct.hbc

Where t.prg is your app.

Regards.
Ash

   Yes, I guess its just that the Viktor and Company didn't want to spend any time on the Borland Compiler issues.
   and, as I mentioned before, xHarbour compiles/links/runs with no problem.

   The linking problem: hbmk2 'somehow' insists that harbour lib files be named (e.g.,) VM.LIB instead of HBVM.LIB !
   So, where in the harbour package is this done ??

    Surely, on of the gurus here can point to a file that supplies the names of lib files to be linked.  If I can know that, then maybe I can change it --- somehow,


Thanks for investigating !

-Mel

Mel Smith

unread,
Mar 4, 2020, 2:56:46 PM3/4/20
to Harbour Users
Hi Mike:

   btw, the little quick app I started and built two days ago is a quickie to allow me to get the names of those who log into my whosaway.com site.  I pick up visually a visitor in my apache logs (say, 123.255.123) from the log, then take the first two octets, and look thru my Apache httpd.conf configuration file, and find where I have added: "Allow from 123.255."  On finding this double octet, I know on the previous line there is a comment identifying the visitor (i.e., name, city, country, email address).

   So, its a quick way for me to see who is visiting. Instead of examining the .conf file with my editor and manually searching. I'm really getting lazy now.

   After making this quickie, I decided to try to get it to run in Harbour under BCC 7.4.0.  No Luck !

-Mel

mstuff kstuff

unread,
Mar 4, 2020, 4:00:24 PM3/4/20
to Harbour Users
Mel,
Have fun.
Mike

Appliserver

unread,
Mar 5, 2020, 12:30:37 PM3/5/20
to harbou...@googlegroups.com

Hi Mel,

I just read the whole thread and jump in (late). Maybe I can help.

First of all, (in Windows environment) I recently discovered an astonishing piece of software, LogonView.dll from Microsoft. The nice thing is that the dll can be easily used from inside (x)Harbour. It's a log reader/filter. It's useful to extract data from (nearly) any log/registry you can imagine. I am writig a program to analyze data from Security EventLog and Windows registry. Since I use both Harbour and xHarbour, my code has many lines like:

#IFDEF __XHARBOUR__ etc., but you can also use xhb.lib (a compatibility lib for Harbour).

If someone is interested I can post the relevant parts. Using LogonView seems a bit complicated at a first glance (f.e. you must use a sql syntax to extract data) but after a bit it isn't so terrible; and anyway this is a good occasion to remember that (x)Harbour can use any dll exposing COM interface, and this is TERRIFIC power. I see that there are some new users so maybe just to remember such a possibility is not inappropriate. :-)

Now the other problem. Yes, Harbour follows a different naming convention for libs. You include xxx and the real name in xHarbour is xxx.lib, in Harbour it is libxxx.lib

I use (in Windows) MINGW with Harbour and BCC 6.9 (the last free version if I am not wrong) with xHarbour, but recently I had to compile Harbour with BCC, to build a lib of mines and to give it to a beta tester (thanks fdaniele) that uses Minigui extended (that uses BCC 5.5).

I was not able to compile all the contribs, but Harbour core compilation went OK, and so went the building of the dBaseWeb library.

So you shouldn't have any problem in compiling a small prog. You don't need the hbp file for a simple program if the Harbour environment is rightly configured. Just hbmk2 myprogram.

BTW the line -debug- in the hbp file is probably wrong and must be removed.

Dan

--
--
You received this message because you are subscribed to the Google
Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: http://groups.google.com/group/harbour-users

---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/harbour-users/6889b649-255c-4ac0-8646-81a26d541709%40googlegroups.com.

Pete

unread,
Mar 5, 2020, 12:59:20 PM3/5/20
to Harbour Users


On Wednesday, 4 March 2020 19:22:36 UTC+2, Mel Smith wrote:
   I believe that Harbour built under Borland can no longer create working apps for me. I just don't have the brainpower to figure out these crazy problems.


Don't taking it personally! hbmk2, is a polite "make" program, it would never do
something crazy, just to upset you. ;-)
In fact, is probable that the hbmk2 does exactly what you're asking it to do.

take a moment and review the line :

\HARBOUR\BIN\HBMK2 %1.HBP -xhb \harbour\contrib\hbct\hbct.hbc > HRBAPP.LOG 2>&1
in your "Build Batch File"

then remove that suspicious `-xhb` out of there.
I suspect it's the evil switch of the whole story. and then try building again and see whether it helped or not.

PS. -debug switch has nothing to do with harbour. it's a hbmk2 switch to add or exclude C compiler debug info.
PS2. -st switch is redundant, while -trace is a very specific case (but never used it have a valid opinion).

regards,
Pete

regrds

Mel Smith

unread,
Mar 5, 2020, 3:16:18 PM3/5/20
to Harbour Users


On Thursday, March 5, 2020 at 10:59:20 AM UTC-7, Pete wrote:


then remove that suspicious `-xhb` out of there.
I suspect it's the evil switch of the whole story. and then try building again and see whether it helped or not.


Hi Pete: 

   You're RIGHT !!  the -xhb switch caused all the trouble. And yet, I've used it over the years because I was told to insert it by 'someone' ????

   Anyway, after a couple of code corrections (mostly replacing the ATAIL() array function with the correct RIGHT(cINP,1) function, I've now got a fairly simple proggie that works exactly the same in Harbour as it does in xHarbour.

   The only correction to the Build Batch file was the removal of -xhb   (and I also removed the -debug- and -b- switches from the .HBP file for the app)

   And the final source code version is below

Thanks to all of you who helped me conquer this problem. I learned a lot !
-Mel

**** whois.prg *****
// read-in two leading octets from stdin, and search Apache config.conf to see who this is.

//#include "c:\cgi\source\include2.ch"

FUNCTION MAIN(cINP)
local I,csrc,cdst,nbytes,aresary,nleninp,aOCTETS,nOCTETS,cOCT1,cOCT2,lFound,aRecNos,nRecno

PRIVATE GCGIDBF,GCONWRKN,GFCON,GFCONFIL,GFCONNDX
GCGIDBF := "C:\CGI\DBF\"
GCONWRKN := 2
if empty(cINP)
   cINP := ""
endif

cINP := alltrim(lower(cINP))

if RIGHT(cINP,1) == "."
   cINP := left(cINP,len(cINP)-1)   // getting rid of final dot
endif

nLENINP := len(cINP)

if nleninp == 0
   ALERT("You entered: "+cINP+"  Please Enter 1st two complete octets of a visiting URL. e.g., 123.543.")
   RETURN NIL
endif

// examine url for two octets
aOCTETS := HB_ATOKENS(cINP,".")  // gets an array of 'hopefully' two tokens
nOCTETS := len(aOCTETS)    // should be 2 octets
if nOCTETS <> 2
   alert("cINP="+cINP+" Num of octets="+NTOC(nOCTETS)+" Enter *two* octets")
   CLOSE DATABASES
   RETURN NIL
***** end of whois.prg *****

Mel Smith

unread,
Mar 5, 2020, 5:23:49 PM3/5/20
to Harbour Users
Hi All: A final note:


   I note that the use of ATAIL in Harbour is different than in xHarbour.

   1.   ATAIL(someArray) is supposed to return the last element of the array.

   2.  xHarbour assumes that a string of characters is *also* an array. i.e., a 1-d array of characters. And so returns the last character of the string of chars.

   3.  Harbour returns a valtype == 'U'

So, did xHarbour add this as an extension, or did Harbour somehow compile it this way ??

-Mel

oleksa

unread,
Mar 5, 2020, 5:33:12 PM3/5/20
to harbou...@googlegroups.com
Hi!

You can read about differences between Harbour and xHarbour at https://github.com/harbour/core/blob/master/doc/xhb-diff.txt

Regards,
Oleksii Myronenko

6 березня 2020, 00:23:54, від "Mel Smith" <meds...@gmail.com>:

--
--
You received this message because you are subscribed to the Google
Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: http://groups.google.com/group/harbour-users

---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.

Mel Smith

unread,
Mar 5, 2020, 7:57:49 PM3/5/20
to Harbour Users
Hi Alexey:

I examined the xhb-diffs.txt.

   It mentions ATAIL -- but only with respect to negative indexes.

   Anyway, thanks all for reviewing my little project.

-Mel
 

Klas Engwall

unread,
Mar 6, 2020, 5:50:59 AM3/6/20
to harbou...@googlegroups.com
Hi Mel,
Harbour - without the xhb contrib - does not recognize strings as
arrays, as you have already noticed. So there is no need for any array
functions in Harbour to work on strings. On the other hand, since
xHarbour _does_ recognize strings as arrays it is a natural consequence
that some (all?) array functions in xHarbour have been extended to also
work on strings.

BTW, Harbour functions without a "hb_" prefix are always strictly
Clipper compatible and never extended in any way. All extensions to
Clipper functions are put in separate functions with a "hb_" prefix. So
if an xHarbour function does something that the Clipper/Harbour function
of the same non-prefixed name does not do, then you can easily conclude
that it is an xHarbour only extension.

Very early in Harbour's history there existed some Clipper functions
with extended functionality. You can see some examples of that in the
old docs in the doc directory. But all those functions were later split
into two different functions, one strictly Clipper compatible without
prefix and one with the extension and a "hb_" prefix. When xHarbour was
forked from Harbour those original extensions were kept in the xHarbour
version of the functions.

Regards,
Klas

Mel Smith

unread,
Mar 6, 2020, 10:36:17 AM3/6/20
to Harbour Users
Hi Klas:

   Thanks for the further information.

-Mel


Mel Smith

unread,
Mar 8, 2020, 1:06:50 PM3/8/20
to Harbour Users
Hi All:

   I have added to my .whois.hbp file the following switch: -lxhb
   And my compilation/linking went perfectly.

   But, I don't know a *simple* way to test that lib's inclusion within my whois.prg.

   That is, there are many functions that the contrib\xhb includes for use by Harbour programmers. But, what is a *simple* function from that lib that I can place within my whois.prg to show that that all the funcs within xhb.lib are active and functional and ready-to-use ?

Thanks,
-Mel Smith

Mel Smith

unread,
Mar 8, 2020, 9:12:27 PM3/8/20
to Harbour Users
Hi All:

  I just used  the function MessageBox("This is a test") to confirm actual use of the xhb library within my proggie.

   It worked -- (after including the line xhbwin.hbc  in my whois.hbp file)

Thanks All !

-Mel Smith
Reply all
Reply to author
Forward
0 new messages