Hi!
die cygwin1.dll muss im selben Verzeichnis liegen, wie Deine .exe.
Ich habs im Winnt/system32 versucht und das hat auch funktioniert, denn ich denke da gehören DLL´s hin, oder?
Aber das ist es eigentlich nicht was ich will. Ich habe ja lediglich folgendes Script:
#include <iostream.h>
int main()
{
cout << "Hello World!" << endl;
return 0;
}
Wobei selbst das - wieso muß da "endl" ans Ende? Heißt vermutlich "endline" , aber dafür gibt es doch "\n"?! "endl" muß ich ja verwenden, sonst geht es nicht, aber ich verstehe nicht so ganz wieso, und wieso es dann noch "\n" gibt?!
Genauso wenig verstehe ich warum das ganze in einer Funktion stehen muß, und auch warum diese einen Rückgabewert braucht, denn wenn ich den von 0 auf 1 verändere funktioniert es weiter!?
Aber vermutlich muß ich das alles einfach hinnehmen und mich erstmal einarbeiten, dann werde ich es wohl früher oder später im Zusammenhang verstehen.
Du musst diese DLL auch immer mit ausliefern, wenn deine Programme das cygwin-API nutzen.
Was heißt das denn genau die "cygwin-API nutzen"? Für das bekloppte Script oben, wie kann es sein dass ich da ne eigene DLL brauche? Vermutlich sind die Standard-Windows DLLs doch mächtig genug um "Hello World" über die Standardausgabe auszugeben, oder?
Dadurch wird auch Deine Software automatisch free-open-source. Das steht so in der Lizenz-Vereinbarung.
http://cygwin.com/faq/faq_toc.html#TOC94
Das ist mir total egal! Mit Lizenzen etc. kann ich mich später auseinandersetzen, ich würde aber erstmal gerne verstehen wie das ganze funktioniert ;-), vor allem wie ich möglichst einfach ein C++ Programm schreibe, das ohne zusätzliche Voraussetzungen auf einem normalen Windows-Rechner läuft. In meinem Script greife ich ja auf eine Header-Datei zurück(iostream.h), die wird dann beim Kompilieren mit eingearbeitet, so dass Windows damit umgehen kann, oder? Ist das dann abhängig von der DLL?
Wenn Dein Programm das cygwin-API nicht benötigt siehe:
http://cygwin.com/faq/faq_4.html#SEC94
Keinen Schimmer ;-)
Aber was braucht man für "Hello World" großartiges? Ich will nur irgendwie "Hello World" in der Win-Shell ausgeben lassen, ohne eine extra DLL zu benötigen. Lizenzen sind wie gesagt egal, es geht erstmal um die Funktionalität!
Jedenfalls schonmal vielen Dank für Deine Antwort. Wenn jemand noch Tipps, Links, Buchempfehlungen oder was auch immer für den Einstieg in C++ hat bin ich sehr dankbar! Mich interessieren zum einen die Unterschiede zw. Unix und Windows, für das was man braucht um auf beiden System ein Kommandozeilen-Script zu schreiben, wie man dann irgendwann daraus an eine GUI kommt, und wie man eine richtige Anwendung schreibt, die ein "Gedächtnis" hat, also in PHP brauche ich ja immer einen Session-Mechanismus um Informationen von einem ins andere Script zu übertragen, ich habe mal gehört dass das in C++ anders sei, aber ich habe keine Ahnung. Ich weiß auch das C++ wahnsinnig kompliziert ist(wenn ich selbst bei Hello World Problemem bekomme, au Mann!), und ich weiß auch das gerade die beiden letzen Punkte die ich genannt habe nichts für Anfänger sind, aber das ist so zu sagen mal ein etwas weit gestecktes Ziel.
Grüße
Andreas
PS:
Wie ist das denn unter Unix? Vermutlich gibt es da doch keine DLLs, oder? Worauf greift das Programm dann zurück? Kann ich das auf Linux standardmäßig mit einem C-Compiler kompilieren und dass dann auf jedem Unix als "Programm" starten, so wie Tools wie "gzip"...?