* Martin Knipper [Sun, 16 Dec 2001 15:08:56 +0100]:
int main() {
<pingelig> Nach ISO C++ ist int main(int, char **) die einzig gültige Definition für main! Durch weglassen der Parameternamen kannst du ja schliesslich anzeigen, dass du die Parameter nicht brauchst. </pingelig>
char *s="Hallo Martin"; Mach daraus unsigned char *s="Hallo Martin";
Kommentiere ich die Zeile "gdImageString(im, gdFontLarge, 0, 0, s, white);" ein, erhalte ich den Fehler: png2.cpp: In function `int main()': png2.cpp:29: passing `char *' as argument 5 of `gdImageString(gdImage *, gdFont *, int, int, unsigned char *, int)' changes signedness
Vom Syntax her ist alles korrekt.
Nein ist es nicht! gdImageString erwartet als fünften Parameter einen 'unsigned char *', du übergibst aber einen 'char *'. Also ändert sich das Vorzeichen des Strings, was c++ zu Recht anmosert. Philipp PS. Die .sig habe ich jetzt mit Absicht gewählt :-) -- Wenn Zimmerleute ihre Häuser so bauen würden, wie Programmierer ihre Programme, wäre der erste daherkommende Specht das Ende der Zivilisation.