exe datei ausführen
-
Habe mir das Video auch angesehen. Es verwundert mich, dass es Compiler gibt, die Runtime-Bibliotheken nicht standardmässig in eine überall ausführbare EXE integrieren und dafür in der IDE vom Standard geänderte Einstellungen brauchen. Scheint mir eine 'deftige Macke' von Visual-Studio zu sein, die es z.B. bei BCB von Borland nicht gibt. Eine EXE ohne Runtime-Biblioteken bleibt ein Krüppel oder man muss deutlich sagen, welche DLLs bei einer Übertragung auf einen anderen Rechner mitgeliefert werden müssen!
Sorry, diese Kritik an Microsoft. Wir sind im Jahr 2010 nicht mehr in der Steinzeit der Computerei!
-
berniebutt schrieb:
Habe mir das Video auch angesehen. Es verwundert mich, dass es Compiler gibt, die Runtime-Bibliotheken nicht standardmässig in eine überall ausführbare EXE integrieren und dafür in der IDE vom Standard geänderte Einstellungen brauchen. Scheint mir eine 'deftige Macke' von Visual-Studio zu sein, die es z.B. bei BCB von Borland nicht gibt. Eine EXE ohne Runtime-Biblioteken bleibt ein Krüppel oder man muss deutlich sagen, welche DLLs bei einer Übertragung auf einen anderen Rechner mitgeliefert werden müssen!
Sorry, diese Kritik an Microsoft. Wir sind im Jahr 2010 nicht mehr in der Steinzeit der Computerei!
http://www.dependencywalker.com/
Damit kannst nachsehen welche .dlls benötigt werden.
rya.
-
Scorcher24 schrieb:
http://www.dependencywalker.com/
Damit kannst nachsehen welche .dlls benötigt werden.Klar, weiss ich. Speziell verwendete Besonderheiten selbstverständlich als DLLs beifügen, aber Runtime-Bibiotheken?
-
berniebutt schrieb:
Scorcher24 schrieb:
http://www.dependencywalker.com/
Damit kannst nachsehen welche .dlls benötigt werden.Klar, weiss ich. Speziell verwendete Besonderheiten selbstverständlich als DLLs beifügen, aber Runtime-Bibiotheken?
Ich habe deine Aussage in keinster Weise bewertet.Ich habe nur eine Information geliefert :). Ich persönlich brauch keine statische Linkage. Runtime beilegen und gut ist.
rya.
-
berniebutt schrieb:
Habe mir das Video auch angesehen. Es verwundert mich, dass es Compiler gibt, die Runtime-Bibliotheken nicht standardmässig in eine überall ausführbare EXE integrieren und dafür in der IDE vom Standard geänderte Einstellungen brauchen. Scheint mir eine 'deftige Macke' von Visual-Studio zu sein, die es z.B. bei BCB von Borland nicht gibt. Eine EXE ohne Runtime-Biblioteken bleibt ein Krüppel oder man muss deutlich sagen, welche DLLs bei einer Übertragung auf einen anderen Rechner mitgeliefert werden müssen!
Sorry, diese Kritik an Microsoft. Wir sind im Jahr 2010 nicht mehr in der Steinzeit der Computerei!
Jeder der die Dokumentation zu Visual Studio liest, wird den Hinweis ganz klar finden, dass man die Bibliotheken mit ausliefern muss. Hier zum Beispiel für VS2010 der Deployment Artikel. Nur liest dies halt keiner, da kann Microsoft wirklich nichts dafür. Zudem verwendet man standardmässig die DLL Option. Ich linke nur sehr selten die Runtime Libraries statisch. Daher ist die Standardeinstellung in Ordnung. Sie ist halt vielleicht nicht für blinde* Neulinge ausgelegt.
*Bevor das jemand als Beleidigung sieht. Ich war auch blind und habe es nicht gelesen, bis ich dann in die Wand gerannt bin
Grüssli
-
Dann muss man tatsächlich die Doku lesen oder fährt gegen die Wand. Muss aber wirklich nicht sein. Bleibt aber meine persönliche Meinung.
daddeldu! :p
-
ich würde diese diskusion bestimmt interessant finden wenn ich wüsste was runntime bibliotheken sind und welche DLLs Ihr meint
-
@bammes: Compiler übersetzen einen Quellcode (dein Programm) in Maschinencode. Zur Ausführung des Maschinencodes sind dann abhängig von dem Zielsystem (32-bit, 64-bit, Konsole, Windows, ...) Runtime-Bibliotheken erforderlich, damit die EXE in der gewünschten Umgebung des Systems lauffähig wird. Jeder Compiler-Hersteller hat dafür seine eigenen DLLs. Deine Programmierumgebung (Visual Studio) verzichet mit den Standardeinstellungen darauf, weil die erforderlichen DLLs auf deinem System ja vorhanden sind. Gewonnen wird eine etwas kleinere EXE und etwas Zeit für die Erstellung des Programmes, mehr nicht.
Vergiss das Thema und stelle das Projekt so ein, dass du nur die EXE weiterreichen musst!
-
berniebutt schrieb:
@bammes: Compiler übersetzen einen Quellcode (dein Programm) in Maschinencode. Zur Ausführung des Maschinencodes sind dann abhängig von dem Zielsystem (32-bit, 64-bit, Konsole, Windows, ...) Runtime-Bibliotheken erforderlich, damit die EXE in der gewünschten Umgebung des Systems lauffähig wird. Jeder Compiler-Hersteller hat dafür seine eigenen DLLs. Deine Programmierumgebung (Visual Studio) verzichet mit den Standardeinstellungen darauf, weil die erforderlichen DLLs auf deinem System ja vorhanden sind. Gewonnen wird eine etwas kleinere EXE und etwas Zeit für die Erstellung des Programmes, mehr nicht.
Falsch. Nicht nur mein Programm oder deines oder seines, sondern alle Programme werden kleiner und sparen somit Speicherplatz. Und wenn ich mir ansehe dass manche Binaries teils 10MB bis zu 70MB haben (Games als Stichwort), finde ich es schön nützlich dass Runtimes zentral installiert werden.
Vergiss das Thema und stelle das Projekt so ein, dass du nur die EXE weiterreichen musst!
Geiler Tipp an einen Anfänger.
Ich bin dann gespannt was Du zu ihm sagst wenn er mal mit seiner statisch gelinkten .exe gegen eine 3rd Party DLL linkt und das ganze nur am crashen ist.
rya.
-
Zitat:
Vergiss das Thema und stelle das Projekt so ein, dass du nur die EXE weiterreichen musst!
Geiler Tipp an einen Anfänger.
Ich bin dann gespannt was Du zu ihm sagst wenn er mal mit seiner statisch gelinkten .exe gegen eine 3rd Party DLL linkt und das ganze nur am crashen ist.
rya.Ich versteh kein wort.
aber das mit bibliothek hab ich verstanden^^
-
bammes schrieb:
Zitat:
Vergiss das Thema und stelle das Projekt so ein, dass du nur die EXE weiterreichen musst!
Geiler Tipp an einen Anfänger.
Ich bin dann gespannt was Du zu ihm sagst wenn er mal mit seiner statisch gelinkten .exe gegen eine 3rd Party DLL linkt und das ganze nur am crashen ist.
rya.Ich versteh kein wort.
aber das mit bibliothek hab ich verstanden^^
Ganz einfach: Es gibt statische Bindung und dynamische. Bei der dynamischen werden die berühmten .dll benötigt. Linkst Du statisch, bekommt die Binary (exe) eine eigene Kopie dieser Runtime. Allokierst Du nun Speicher in deiner statisch gebundenen Binary und übergibst das als Zeiger an eine dll von sagen wir mal einer GUI Bibliothek, dann kann das heftige Crashes zur Folge haben, weil die Runtime die von der GUI verwendet wird grob gesagt nix von dem Speicher "weiss" bzw keinen Zugriff drauf hat.
Deswegen:
Statische Linkage ist ok solange man auf keine weiteren Bibliotheken zugreift bzw diese auch statisch linkt. Sobald aber ein Element deines Programmes dynamisch, also als dll, eingebunden wird, musst Du auch die Runtime dynamisch linken.
Du musst das momentan nicht 100% verstehen, aber die Stichworte dazu bitte im Hinterkopf behalten.
rya.
-
xd oke hoffentlich steht des im buch
-
runtime bibliotheken haben den vorteil das man sie nur einmal auf dem rechner benötigt, und evtl. zentral updaten kann, und andere, neue programme die dieselbe bibliothek benutzen dadurch mehr funktionalität bereitgestellt bekommen können ... und gerade bei der aktion "programm einem freund schicken" kann es halt durchaus sein das ein klitzekleines 1K programm 100 mb bibliotheken benutzt. würde man diese mit in die executable "wrappen" dann dürftest du jedesmal wenn du ein update hast deinem freund erneut 100mb schicken ... wenn er die DLLs schon hat nur 1K ... was ist besser?