amiga-news DEUTSCHE VERSION
.
Links| Forums| Comments| Report news
.
Chat| Polls| Newsticker| Archive
.

amiga-news.de Forum > Programmierung > ReadArgs(): Interessantes Problem... [ - Search - New posts - Register - Login - ]

-1- [ - Post reply - ]

2007-03-08, 01:25 h

whose
Posts: 2156
User
Hallo!

Wie das Thema schon sagt: Ich habe Streß mit ReadArgs(). Der äußert sich so: starte ich das Programm ganz ohne Parameter -> Absturz. Starte ich es mit einem Teil der Parameter -> Absturz. Starte ich es mit allen Parametern -> alles Bestens und die Parameter werden korrekt übergeben.

Hier mal ein Code-Ausschnitt aus dem bewußten Programm:
C code:
static LONG args[5];

...

int rc = RETURN_OK;

if (rdargs = ReadArgs("INFILE/A,STARTX/A/N,STARTY/A/N,SIZEX/A/N,SIZEY/A/N", args, NULL))
{
...
}



Ich frage mich jetzt, was ich genau verkehrt mache, daß statt "Gefordertes Argument fehlt" der Guru zu Besuch kommt. So ganz begreife ich das nämlich nicht.

Ich kompiliere das Programm mit dem vbcc 0.8j. Gibts da möglicherweise ein Problem? Ein anderes Programm mit ähnlichem Aufbau, mit dem StormC kompiliert, läuft tadellos und gibt auch eine ordentliche Meldung von sich. Dieses da oben habe ich noch nicht mit dem Storm durchgenudelt, weil ich den z.Z. nicht installiert habe.

Für eine Hilfe wäre ich echt dankbar, das treibt mich noch in den Wahnsinn :(

Grüße

--
---

:boing: µA1 PPC 750GX-800
:boing: A4000 PPC 604e-233


[ Dieser Beitrag wurde von whose am 08.03.2007 um 02:11 Uhr geändert. ]

[ - Answer - Quote - Direct link - ]

2007-03-08, 02:48 h

whose
Posts: 2156
User
Danke, hat sich erledigt. Ich habe nen verkorksten Cast gefunden I-)

Grüße

--
---

:boing: µA1 PPC 750GX-800
:boing: A4000 PPC 604e-233

[ - Answer - Quote - Direct link - ]

2007-03-08, 09:20 h

thomas
Posts: 7717
User
Zitat:
LONG args[5];

Ich benutze stattdessen immer

struct {
char *infile;
long *startx;
long *starty;
long *sizex;
long *sizey;
} args;


Dann kann ich später auf args.infile zugreifen und muß nicht sowas wie (char *)args[0] benutzen.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Answer - Quote - Direct link - ]

2007-03-09, 18:42 h

whose
Posts: 2156
User
@thomas:

Hm, schon, aber bei /N-Argumenten muß man dann doch auch wieder wüst tippen, so ala *(args.startx);

Viel weniger Tipparbeit ist das auch nicht, finde ich. Allerdings muß man sagen, daß ReadArgs() ne recht praktische Sache ist, wenns denn nur nicht so umständlich zu handhaben wäre...

Grüße

--
---

:boing: µA1 PPC 750GX-800
:boing: A4000 PPC 604e-233

[ - Answer - Quote - Direct link - ]

2007-03-09, 18:55 h

thomas
Posts: 7717
User
@whose:

Also ich finde schon, daß *args.startx weniger Tipparbeit ist als *((long *)args[1]).

Und es geht ja auch nicht um die Tipparbeit, sondern um die Lesbarkeit und die Reduzierung der Casts. Letzteres reduziert auch automatisch die Anzahl Fehler.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Answer - Quote - Direct link - ]

2007-03-09, 19:06 h

whose
Posts: 2156
User
Zitat:
Original von thomas:
@whose:

Also ich finde schon, daß *args.startx weniger Tipparbeit ist als *((long *)args[1]).

Und es geht ja auch nicht um die Tipparbeit, sondern um die Lesbarkeit und die Reduzierung der Casts. Letzteres reduziert auch automatisch die Anzahl Fehler.


Ja, mit Blick auf die Casts verstehe ich das.

Wie würde denn die struct an ReadArgs() übergeben? wäre doch einfach ein (LONG *)&args, oder sehe ich den Wald vor lauter Bäumen jetzt nicht? Die Suche nach dem verkorksten Cast vor 2 Tagen hat mich doch etwas wild gemacht...

Grüße

--
---

:boing: µA1 PPC 750GX-800
:boing: A4000 PPC 604e-233

[ - Answer - Quote - Direct link - ]

2007-03-10, 09:37 h

thomas
Posts: 7717
User
@whose:

Zitat:
(LONG *)&args

Genau. Oder (APTR)&args.

Gruß Thomas


--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Answer - Quote - Direct link - ]


-1- [ - Post reply - ]


amiga-news.de Forum > Programmierung > ReadArgs(): Interessantes Problem... [ - Search - New posts - Register - Login - ]


.
Masthead | Privacy policy | Netiquette | Advertising | Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved.
.