Visual C++ 2008 Express funktioniert nicht (Vista)
-
hallo
dieser thread resultiert sozusagen aus diesem -> http://www.c-plusplus.net/forum/viewtopic-var-t-is-207475.html
ich habe ein Win32 konsolen projekt erstellt und beim kompilieren kommt eine fehlermeldung http://janismac.de/VC++error.jpg
liegt das an vista??
ich kenn mich noch kaum mit C++ aus (ist ja recht gewöhnungsbedürftig)
ich find das#include "stdafx.h"
irgendwie merkwürdig
kann man nicht die stan.dart bibliotheken nutzen...MfG janismac
-
janismac schrieb:
ich kenn mich noch kaum mit C++ aus (ist ja recht gewöhnungsbedürftig)
ich find das#include "stdafx.h"
Das ist der Visual-C++-Compiler schuld und hat nichts mit C++ zu tun. Diese Datei wird vom VC++-Compiler automatisch generiert, um Header-Dateien schneller laden zu können. Dies ist aber kein Teil des C++ Standards.
janismac schrieb:
irgendwie merkwürdig
kann man nicht die stan.dart bibliotheken nutzen...Es heißt Standard-Biliothek. Natürlich kannst du die benutzen.
#include <iostream>
oder was auch immer du haben willst.
-
danke, aber darum ging es nicht hauptsächlich
das was der grund für den thread
http://janismac.de/VC++error.jpg
-
janismac schrieb:
das was der grund für den thread
http://janismac.de/VC++error.jpgEindeutig VISTA!
Diese unsinnigen Manifest-Dateien werden meines Wissens nach nur unter Vista gebraucht.
-
Manifest-Dateien werden ab XP benötigt.
Versuch mal eine Repair-Installation der Express-Edition...
-
Jochen Kalmbach schrieb:
Manifest-Dateien werden ab XP benötigt.
Wenn mich nicht alles täuscht, kann ich unter XP selbstgebaute Anwendungen problemlos starten, die kein Manifest haben.
-
So lange Du statisch linkst gilt dies für alle OSes... siehe auch:
http://blog.kalmbach-software.de/de/2008/03/05/wie-man-statisch-gegen-die-c-runtime-crt-linkt/Sobald Du gegen die CRT via DLL linkst, brauchst Du ab VS2005 ein Manifest.
-
Ah, OK, Ich linke immer statisch. Die Speichermedien sind ja heutzutage mehr als groß genug und michts ist schlimmer als "DLL-Hell" durch Redistributables usw.
Der Manifest-Quatsch erinnert mich sehr an Java JAR-files. Da muß auch immer sowas rein. Ich hab Manifeste in den Projekt-Settings von VS immer abgeschaltet, bisher ohne negative Konsequenzen.
Naja, dann hätten wir auch eine Lösung für den OP: Statisch linken.
-
tschuldigung, wenn ich mich etwas blöd anstelle (hab mit C++ noch nicht viel gemacht)
hab jetzt "manifest generieren"="nein" gestellt
jetzt kommt das http://janismac.de/naechster-fehler.jpg
-
janismac schrieb:
tschuldigung, wenn ich mich etwas blöd anstelle (hab mit C++ noch nicht viel gemacht)
hab jetzt "manifest generieren"="nein" gestellt
jetzt kommt das http://janismac.de/naechster-fehler.jpg
Weil du dynamisch linken eingestellt hast. Gut, das würde ich persönlich ungeachtet der hinweise auf das statisch linken auch tun (mich stört nicht das man dir die Möglichkeit des statisch linkens mitteilt, mich stört daran das man nicht beide Möglichkeiten erwähnt - vielleicht auch mit Gründen für und wieder), aber dann muss auf dem Zielrechner auch die Laufzeitumgebung installiert sein.
Du hast im Prinzip zwei Möglichkeiten:
a) Du linkst die Laufzeitumgebung statisch in deine Anwendung ein
b) Du linkst dynamisch gegen die Laufzeitumgebung, und gibst beim Verteilen entweder die Installationsversion der Laufzeitumgebung mit, oder den Link wo man selbige herunterladen kann.(Microsoft Visual C++ 2008 Redistributable Package (x86):
http://www.microsoft.com/downloads/details.aspx?familyid=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=en)Beide Wege haben ihre Vor- und Nachteile. Mit der statisch gelinkten Version wird dein Programm größer, du musst an weniger beim Verteilen achten. Mit der dynamisch gelinkten Version muss nur einmalig die Laufzeitumgebung installiert werden und alle Programme die diese benötigen greifen gemeinsam darauf zu. Da gerade die Microsoftumgebung so verbreitet ist, wird früher oder später mit Sicherheit ein Programm letzteres machen (Wobei auch dieses vorgehen Nachteile hat, Stichwort DLL-Hell). Bei der Möglichkeit des Downloads kann man aber wenigstens auch noch die Sprachversion mit Angeben.
cu André
Nachtrag: In manchen Fällen hast du auch keine Wahl und musst dynamisch gegen die Laufzeitumgebung linken (z.B. bei verwendung von C++/CLI, wo zudem auch die Laufzeitumgebung des .Net Frameworks installiert werden muss)
-
Weil du dynamisch linken eingestellt hast.
wie kann man das denn umstellen??
ich hab unter "Projekt -> <Projekt>-Eigenschaften" [Alt+F7]
schon alles durchsucht, aber nichts gefundenjanismac
-
Ich kann es ja nochmals wiederholen:
http://blog.kalmbach-software.de/de/2008/03/05/wie-man-statisch-gegen-die-c-runtime-crt-linkt/
-
durch die manifeste gibt es keine dll hell mehr. verschiedene versionen einer dll können dank der manifeste parallel existieren, ohne an den dateinamen rummachen zu müssen.
-
Ich kann es ja nochmals wiederholen:
http://blog.kalmbach-software.de/de/2008/03/05/wie-man-statisch-gegen-die-c-runtime-crt-linkt/danke!!