DEUTSCHE VERSION |
|
Links | | | Forums | | | Comments | | | Report news |
Chat | | | Polls | | | Newsticker | | | Archive |
amiga-news.de Forum > Programmierung > FindToolType | [ - Search - New posts - Register - Login - ] |
-1- | [ - Post reply - ] |
2002-10-08, 18:33 h Mad_Dog Posts: 1944 User |
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. ] [ - Answer - Quote - Direct link - ] |
2002-10-08, 19:18 h thomas Posts: 7718 User |
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/ [ - Answer - Quote - Direct link - ] |
2002-10-08, 19:37 h David Posts: 65 User |
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 [ - Answer - Quote - Direct link - ] |
2002-10-08, 21:15 h Mad_Dog Posts: 1944 User |
Zitat: Das funzt leider auch nicht. Wenn man ne Developer CD macht, dann sollten die Beispiele auch funktionieren! Danke Amiga, Danke Haage&Partner! [ - Answer - Quote - Direct link - ] |
2002-10-08, 21:32 h Mad_Dog Posts: 1944 User |
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. ] [ - Answer - Quote - Direct link - ] |
2002-10-08, 21:38 h Mad_Dog Posts: 1944 User |
STIER! Hier stand nach dem Edit alles zweimal im Forum - Sorry... [ Dieser Beitrag wurde von Mad_Dog am 08.10.2002 editiert. ] [ - Answer - Quote - Direct link - ] |
2002-10-08, 21:38 h Mad_Dog Posts: 1944 User |
[ Dieser Beitrag wurde von Mad_Dog am 08.10.2002 editiert. ] [ - Answer - Quote - Direct link - ] |
-1- | [ - Post reply - ] |
amiga-news.de Forum > Programmierung > FindToolType | [ - Search - New posts - Register - Login - ] |
Masthead |
Privacy policy |
Netiquette |
Advertising |
Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved. |