/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Brug af en klasse (sikkert super let)
Fra : JokeSten


Dato : 29-12-02 13:32

Hi
Jeg sidder og koder lidt paragui (nogle klasser til c++ til GUI -
www.paragui.org). Har problemer med at læse biblioteker. Jeg ved hvordan
man kan gøre det i standart c++, men vil meget gerne bruge paragui's
klasser. Her er mit test program

#include "pgfilearchive.h"

PG_FileArchive* path = new PG_FileArchive();
int i=0;

int main(int argc, char* argv[]) {
char** test;
std::cout<<path->GetBaseDir()<<"\n"; // Base output OK
test=path->EnumerateFiles(path->GetBaseDir());
while(test[i]!=NULL){
std::cout<<test[i]; //No output !?! test[i] == NULL ???
i++;
}
return 0;
}

Får ikke listen af filerne i mit base dir. Dvs test[i] er NULL Hvad gør jeg forkert ?
Her er beskrivelserne af klasser/metoder:

-------------------------------------------------
PG_FileArchive Class Reference
A C++ wrapper for the PhysicsFS
.....
Constructor & Destructor Documentation

PG_FileArchive::PG_FileArchive ( )
PG_FileArchive:PG_FileArchive ( )

......
char** PG_FileArchive::EnumerateFiles ( const char * dir ) [static]

Get a list of files in a directory.

This function returns a NULL terminated char ** with the files in the
specified directory. If the directory doesn't exist, NULL is returned.
Note:
The caller is responsible for freeing the array and the directories within the array.
Parameters:
dir directory to list files in
Returns:
the file list

.......
const char* PG_FileArchive::GetBaseDir ( ) [static]
Get the application base directory.
Returns:
the application base directory
-------------------------------------------------

Alt hjælp sætter jeg stor pris på

JokeSten

btw : Bruger mandrake 9.0, gcc 3.2 , paragui 1.0.2


 
 
Igor V. Rafienko (02-01-2003)
Kommentar
Fra : Igor V. Rafienko


Dato : 02-01-03 19:18

[ xxx@xxx.xx ]

> Har problemer med at læse biblioteker. Jeg ved hvordan man kan gøre
> det i standart c++,


Javel? Kunne du fortelle hvordan man kan traversere kataloger vha.
_standard_ C++?


> men vil meget gerne bruge paragui's klasser.


Etter å ha installert og tittet litt på paragui, må konklusjonen være
- ikke gjør det. Ved siden av at dokumentasjonen er _elendig_, så gjør
FileArchive veldig mye rart:

* EnumerateFiles (som er en ekstremt dårlig designet funksjon) går kun
gjennom en forhåndsdefinert liste av kataloger:

[ ... ]

while (*path == '/')
path++;

(...)

for (i = searchPath; i != NULL; i = i->next)
{
DirHandle *h = i->dirHandle;
if (__PHYSFS_verifySecurity(h, path))
{
rc = h->funcs->enumerateFiles(h, path, omitSymLinks);
interpolateStringLists(&finalList, rc);
} /* if */
} /* for */

Dersom katalogen du vil bla i ikke ligger i searchPath, så er det
synd, da resultatet vil være tomt.

* For å få katalogene sine i searchPath, kan man bruke AddArchive,

* ... men det ser ut som at det er en underliggende "sikkerhetsmodell"
som styrer adgangen til filsystemet via PG_FileArchive -- jeg lurer
fx. på hva while-løkken over egentlig gjør -- hvorfor herper den
absolutte path'er opp?

Det kan hende at det å legge til "/" til searchPath vil oppnå det du
egentlig vil; men jeg ville først ha kontaktet paragui utviklere for å
finne ut hva meningen med klassen egentlig er -- den ser så jævlig ut,
at den kan umulig representere et behagelig grensesnitt mot det
underliggende filsystemet.

Er noen andre biblioteker aktuelle for deg? Qt? wxWindows?





ivr, som definitivt ikke skal bruke paragui i nærmere fremtid...
--
<peder> igorr: tcl ja... det er fra de dypeste avgrunnene i helvete det...
<peder> php er bare fra foajeen
            -- pederst på irc

JokeSten (03-01-2003)
Kommentar
Fra : JokeSten


Dato : 03-01-03 02:57

<snip>

> Javel? Kunne du fortelle hvordan man kan traversere kataloger vha.
> _standard_ C++?

hehe ... Kan se hvad du mener :) ... Jeg inkludere naturligvis dirent.h
(så det er ikke _standard_ )

> Etter å ha installert og tittet litt på paragui, må konklusjonen være
> - ikke gjør det. Ved siden av at dokumentasjonen er _elendig_, så gjør
> FileArchive veldig mye rart:

Jeps. Dokumentationen er meget dårlig. Jeg har også besluttet mig for nu,
at lade være med at bruge PG_FileArchive. Jeg holder mig til mulighederne
fra dirent.h

<snip>

> Er noen andre biblioteker aktuelle for deg? Qt? wxWindows?

Jeg synes at wxWindows ser ret interessant ud. Der er vist ret god
dokumentation til. Har også overvejet at bruge GTK, men Qt er jeg ikke så
meget til. Er mere til Gnome's look&feel end Kde's. Tror dog at jeg vil
prøve at lave en version af mit program færdig i paragui færdig først.
Hvis versionen med paragui ikke er god nok vil jeg nok prøve wxWindows. Det
ville være rart hvis mit program var 'cross platform' , så GTK/Qt er
sidste valg.

> ivr, som definitivt ikke skal bruke paragui i nærmere fremtid...

Jeg takker for svar

JokeSten , ... Som lige vil prøve paragui.

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste