Greg hat geschrieben:Endlich mal eine gute Erklärung zum Thema "h-Dateien". Ich habe stundenlang gegoogelt und nix kapiert
Warum sollte man dies h Dateien einbinden?
siehe diverse dokumentation zum unterschied zwischen "deklaration" und "definition".
ein prototyp in einem .h file ist eine "deklaration". sie gibt an, daĂź eine funktion existiert und wie diese aufzurufen ist. funktionscode ist dabei keiner enthalten.
"definiert" werden funktionen in .c(pp) files, dh hier steht der eigentliche programmcode. jede funktion muß pro programm genau einmal definiert sein, wobei "einmal" im sinne von aufrufen des compilers zu sehen ist. dh eine bestimmte funktion darf nur genau einmal bei genau einem compiler-lauf definiert sein. für deklarationen gibt es diese einschränkung nicht.
wenn du jetzt zwei .cpp files hast, hast du zwei compiler-läufe, einen pro file. sichern() ist in sichern.cpp definiert. wenn sichern.cpp nun auch in main.cpp includiert wird, wird sichern() ein zweites mal in main.cpp (via dem incluide) definiert. beim verlinken der object files hast du dann eine kollision, daher der fehler.
da kannst natürlich auch dein altes include lassen und sichern.cpp selbst nie extra compilen (sondern nur main.cpp). keine entwicklungsumgebung wird das aber so machen, und so soll man's auch nicht machen(tm). immerhin gehen dadurch sämtliche vorteile von mehreren source files verloren. stell dir vor, du hast 50 source files, die alle in main.cpp includiert werden, und compilet wird immer nur die main.cpp. erstens fehlt dabei jeglicher überblick (irgendwann wirst du wegen fehlenden prototypen ins stolpern geraten), zweitens mußt du jedes mal bei einer änderung in nur einem file immer alle source files neu compilen (da ja immer alles auf einmal compilet wird). wenn du dagegen jedes source file extra compilest, mußt du nur das eine file neu compilen, das sich geändert hat, und anschliessend die object files neu verlinken. und das ist vor allem bei vielen source files um ein vielfaches schneller.
Wie kann ich dem exe Program ein individuelles *.ico Icon zuweisen?
afaicr geht das mittels resource editor, aber ich bin kein windows-entwickler, daher