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

amiga-news.de Forum > Programmierung > FindToolType [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

08.10.2002, 18:33 Uhr

Mad_Dog
Posts: 1944
Nutzer
Hallo,

Folgendes Beispiel aus dem NDK3.9:



#include <workbench/workbench.h>
#include <clib/icon_protos.h>
#include <clib/dos_protos.h>

int
main(int argc,char **argv)
{
struct DiskObject *icon = NULL;

if(argc > 1)
{
icon = GetDiskObject(argv[1]);
if(icon != NULL)
{
STRPTR found;
int i;

for(i = 2 ; i < argc ; i++)
{
found = FindToolType(icon->do_ToolTypes,argv);
if(found != NULL)
Printf("%s = \"%s\"\n",argv,found);
else
Printf("%s not found.\n",argv);
}
}
}

FreeDiskObject(icon);

return(0);
}




Jetzt die Frage:

Habe versucht das Teil mit StormC 3.0 zu compilieren -> Fehlermeldung!
Angeblich soll die Funktion FindToolType mit unpassenden
Argumenten aufgerufen worden sein. Laut RKM ist hier aber nix falsch,
oder? icon->do_ToolTypes liefert das ToolType Array des DiskObject und
in argv[i] steht der entsprechende Textstring, mit dem man vergleichen
will.

Was zum Geier geht da schief???


P.S.: Nachtrag: Überall wo her argv alleine steht, gehört argv -eckige
Klammer auf- i -eckicke Klammer zu hin. Der Parser hier im Forum
interpretiert das als Formatierungstag für den Text (kursiv).


[ Dieser Beitrag wurde von Mad_Dog am 08.10.2002 editiert. ]

[ - Antworten - Zitieren - Direktlink - ]

08.10.2002, 19:18 Uhr

thomas
Posts: 7716
Nutzer

Das Problem hatte ich auch, als ich eins meiner Programme mit Storm umwandeln wollte. Eins der Probleme.

Ich habe es wie folgt umgangen (auf dein Beispiel angepaßt):

FindToolType(&(icon->do_ToolTypes[0]),(STRPTR)argv[i])

Nach ein paar anderen Klippen habe ich Storm dann Storm sein lassen und wieder Dice oder vbcc genommen.

Gruß Thomas

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

[ - Antworten - Zitieren - Direktlink - ]

08.10.2002, 19:37 Uhr

David
Posts: 65
Nutzer
Das Problem hatte ich auch
es liegt an der Definition der Funktion in
clib/icon_protos.h
denn dort sind die Parameter als CONST_STRPTR definiert.
das Problem lässt sich durch ein einfachen cast umgehen.

code:
for(i = 2 ; i < argc ; i++)
{
   found = FindToolType((CONST_STRPTR *)icon->do_ToolTypes,argv[i]);
   if(found != NULL)
      Printf("%s = \"%s\"\n",argv[i],found);
   else
      Printf("%s not found.\n",argv[i]);
}


mfg
David



[ - Antworten - Zitieren - Direktlink - ]

08.10.2002, 21:15 Uhr

Mad_Dog
Posts: 1944
Nutzer
Zitat:
Original von thomas:

Das Problem hatte ich auch, als ich eins meiner Programme mit Storm umwandeln wollte. Eins der Probleme.

Ich habe es wie folgt umgangen (auf dein Beispiel angepaßt):

FindToolType(&(icon->do_ToolTypes[0]),(STRPTR)argv[i])


Das funzt leider auch nicht.
Wenn man ne Developer CD macht, dann sollten die Beispiele auch
funktionieren! Danke Amiga, Danke Haage&Partner!



[ - Antworten - Zitieren - Direktlink - ]

08.10.2002, 21:32 Uhr

Mad_Dog
Posts: 1944
Nutzer
Zitat:
Original von David:
Das Problem hatte ich auch
es liegt an der Definition der Funktion in
clib/icon_protos.h
denn dort sind die Parameter als CONST_STRPTR definiert.
das Problem lässt sich durch ein einfachen cast umgehen.

code:
for(i = 2 ; i < argc ; i++)
{
   found = FindToolType((CONST_STRPTR *)icon->do_ToolTypes,argv[i]);
   if(found != NULL)
      Printf("%s = \"%s\"\n",argv[i],found);
   else
      Printf("%s not found.\n",argv[i]);
}



BIG THANKS! Anscheinend passen die V44 Header-Dateien
nicht mehr zu den etwas angestaubten Sources. Nen 3.9 NDK
herausbringen und dann prehistorische sources übernehmen... naja...

P.S.: Jetzt ist mir auch endlich klar, wie man hier im Forum code
einbringen kann, ohne, daß der von Parser verstümmelt wird. ;-)




[ Dieser Beitrag wurde von Mad_Dog am 08.10.2002 editiert. ]

[ - Antworten - Zitieren - Direktlink - ]

08.10.2002, 21:38 Uhr

Mad_Dog
Posts: 1944
Nutzer
STIER!

Hier stand nach dem Edit alles zweimal im Forum - Sorry...



[ Dieser Beitrag wurde von Mad_Dog am 08.10.2002 editiert. ]

[ - Antworten - Zitieren - Direktlink - ]

08.10.2002, 21:38 Uhr

Mad_Dog
Posts: 1944
Nutzer




[ Dieser Beitrag wurde von Mad_Dog am 08.10.2002 editiert. ]

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > FindToolType [ - Suche - Neue Beiträge - Registrieren - Login - ]


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