amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > ReadArgs(): Interessantes Problem... [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

08.03.2007, 01:25 Uhr

whose
Posts: 2156
Nutzer
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. ]

[ - Antworten - Zitieren - Direktlink - ]

08.03.2007, 02:48 Uhr

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

Grüße

--
---

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

[ - Antworten - Zitieren - Direktlink - ]

08.03.2007, 09:20 Uhr

thomas
Posts: 7716
Nutzer
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/

[ - Antworten - Zitieren - Direktlink - ]

09.03.2007, 18:42 Uhr

whose
Posts: 2156
Nutzer
@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

[ - Antworten - Zitieren - Direktlink - ]

09.03.2007, 18:55 Uhr

thomas
Posts: 7716
Nutzer
@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/

[ - Antworten - Zitieren - Direktlink - ]

09.03.2007, 19:06 Uhr

whose
Posts: 2156
Nutzer
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

[ - Antworten - Zitieren - Direktlink - ]

10.03.2007, 09:37 Uhr

thomas
Posts: 7716
Nutzer
@whose:

Zitat:
(LONG *)&args

Genau. Oder (APTR)&args.

Gruß Thomas


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

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > ReadArgs(): Interessantes Problem... [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.