delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/08/31/09:41:26

Date: Mon, 31 Aug 1998 16:41:15 +0300 (IDT)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
To: Anton Thimet <thi AT zephyr DOT de>
cc: djgpp AT delorie DOT com
Subject: Re: DJGPP
In-Reply-To: <199808310956.LAA15920@lisa.freising-pop.de>
Message-ID: <Pine.SUN.3.91.980831162958.24142A-100000@is>
MIME-Version: 1.0

On Mon, 31 Aug 1998, Anton Thimet wrote:

> - I want to use the standard C++ library so I downloaded & installed 
> lgp2811b.zip.

Wrong zip file.  The STL library is called libstdcxx.a, and it is in 
gpp281b.zip (which you need to install anyway, since the C++ compiler is 
there).  The headers are also in gpp281b.zip.

You might consider tossing lgp2811b.zip altogether.  It includes 
GNU-specific classes that nobody maintains anymore.

> What library do I need to link?

The FAQ should explain that.  You need to use gpp.exe or gxx.exe to 
link, and then they will automatically instruct the linker to look in 
libstcxx.a.

> - DJGPP natively supports LFNs under Win95 (great!!). But some 
> functions still work with short names, i.e. findfirst() & findnext() [or 
> am I mistaken here?].

You are mistaken, finfirst/findnext support LFN as well.  I guess you 
didn't set LFN=y in the environment, did you?  The LFN support is 
disabled by default unless you set LFN=y.

> I tried to use the bare DOS INT21/71xx interrupts 
> to get this functionality. However, int86() does not translate pointers 
> correctly for the 71xx functions....

int86 doesn't translate pointers at all.  See section 18.1 in the FAQ.  
You need to use __dpmi_int instead, and you need to move the data to the 
special transfer buffer allocated in low memory (use the variable __tb 
declared in <go32.h>).  Chapter 18 of the FAQ is a strongly recommended 
reading before messing with all this (and you certainly do NOT need it to 
get LFN support, which is completely transparent and automatic).

> What can I do? Is there a way to translate DJPP's 32-bit "pointer" into 
> something that a DOS interrupt would accept?

FAQ section 18.2, 18.3 and 18.4 explain this.  Again, you shouldn't need 
this for LFN support.

> - The FAQs mention that there are no INT21/71xx functions under WinNT 
> so LFNs are not supported. Is there a way to access NT long filenames 
> thru some other sort of DOS interrupt?

Microsoft didn't leave any easy ways.  The only way is the experimental 
LFN driver written by a frustrated DJGPP user.  Search the DJGPP forum 
archives (http://www.delorie.com/djgpp/mail-archives/) for announcement 
and URL.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019