"Jesper Gødvad" <Xesper@goedvad.dk> wrote in message
news:9m7s9v$l9o$1@sunsite.dk...
>
> "Mogens Hansen" <mogens_h@dk-online.dk> wrote in message news:9m3lu5$31c3
> >
> > Det nemmeste er at finde et bibliotek, der løser problemet for dig.
> > Prøv f.eks. på boost
> >
http://www.boost.org/libs/dir_it/index.htm
>
> Virker det hos dig?
Ikke umiddelbart med Borland C++Builder, når det downloades.
Jeg har kigget på dir_it eksemplet (dir_it_tst.cpp), og har fundet ud af at
der er en række fejl i koden, så den i hvertfald ikke er i overensstemmelse
ISO C++ Standarden.
>
> Jeg har forsøgt at installere hele biblioteket, men det er komplet
> uforståetligt hvad der går galt. "JAM er en afløser for MAKE[1]. FTJam er
en
> forbedring af JAM". Hvad er make? Dokumentationen til FTJam er den samme
som
> fra Jam. Jeg har sat envioment variabler (uden VFAT extensions), men det
> hele sejler over flere sider og uden konkrete eksempler. :-? :-?
>
Make er en utility, der f.eks. kan anvendes til at compilere og linke
programmer med.
Man kan sætte nogle regler op, så den sikrer at der netop bliver compileret
det nødvendige.
Det er rund regnet det som projekt-styringen i Integrerede Development
Environment (IDE) (f.eks. Microsoft Visual C++, KDE KDevelop og Borland
C++Builder) tager sig af.
Make er fortsat god til at styre store projekter fra kommandolinien.
>
> > bcc32 -Ig:\osv dir_it_tst
> Borland C++ 5.5 for Win32 Copyright (c) 1993, 2000 Borland
> dir_it_tst.cpp:
> Error E2139 boost/directory.h 100: Declaration missing ;
Ikke C++
linien
struct mtime { typedef time_t const *value_type; };
skal rettet til
struct mtime { typedef std::time_t const *value_type; };
Der mangler også en
#include <ctime>
> Error E2089 boost/directory.h 135: Identifier 'value_type' cannot have a
> type qualifier
> Error E2139 boost/directory.h 135: Declaration missing ;
> Error E2268 dir_it_tst.cpp 41: Call to undefined function 'localtime' in
> function main()
Ikke C++
Det hedder std::localtime
> Error E2268 dir_it_tst.cpp 41: Call to undefined function 'strftime' in
> function main()
Ikke C++
Det hedder std::strftime
> *** 5 errors in Compile ***
>
Senere vil du få nogle
"Invalid explicit specialization of '...'
F.eks. står der
template <> get<size>:
erator value_type() const
{
return m_it.rep->get_data().size;
}
hedder retteligt
get<size>:
erator value_type() const
{
return m_it.rep->get_data().size;
}
jvf. §14.7.3 i C++ standarden (side 274)
Med passende smårettelser for at få gjort koden mere i overensstemmelse med
C++ Standarden (jeg har ikke en komplet liste lige nu) kan jeg få dir_it til
at køre med Borland C++Builder V5.0.
>
> Boost bibliotekerne har ambitioner om at blive implementeret i Standard
C++
> Library og dir_it har et meget smukt interface. Hvis de ellers virkede
(hos
> mig) var det et godt valg. Installationen er i hvert fald ikke for
> begyndere.
>
dir_it bibliotekeet figurer fortsat under "Beta Libraries".
Jeg er rimeligt sikker på at dir_it er blevet testet med Microsoft Visual
C++.
Jeg behøver vel ikke at snakke yderligere om Microsoft Visual C++ og
overholdelse af ISO C++ Standarden ?
Venlig hilsen
Mogens Hansen