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: 7718 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: 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: 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. |