Programme laufen nur auf dem eigenen Rechner
-
Hallo,
ich schreibe ab und zu Programme in c++.
Fortgeschritten bin ich zwar nicht aber man lernt ja bekanntlich mit der Zeit.
Neuerdings hatte ich ein Programm geschrieben, das ich einem Bekannten gerne zeigen mochte. Ich habe es ihm also per Email geschickt.
Nun sagt er mir, dass er es nicht öffnen könne weil irgendwas mit "Anwenderkonfiguration" als Fehlermeldung eingeblendet kommt.Ich habe eine simpele Win32 Konsolenapplikation geschrieben.
Bei meinem alten Compiler dem Borland C++ Builder 6.0 musste ich eine dll in das selbe Verzeichnis legen wie mein Programm damit es sich ausführen lies.
Nun habe ich das selbe mit mvcp90.dll und mvcp90d.dll versucht, aber ohne Erfolg.
Natürlich habe ich mich vor der Threaderstelklung in Google grünglich umgeschaut, aber wie gesagt bin erst anfänger und verstehe nicht all zu viel.
Villeicht kann mit ja hier einer weiterhelfen.
Danke im vorraus
PS: warum wird vor-raus zensiert? xD
-
Auf dem Ziel-PC müssen die C-Runtimes von VS2008 installiert werden (MSVCRT90.dll):
http://www.microsoft.com/downloads/details.aspx?displaylang=de&FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf
-
Ja das habe ich auch schon gelesen aber gibt es nicht eine andere möglichkeit?
Es müssten ja dann zwei installationen ausgeführt werdenoder wenn ich einem Freund was zeigen will soll er doch nicht gleich dafür was instalolieren müssen.
Es müsste doch eine möglichkjeit geben die DLL ins selbe Verzeichnis zu legen
-
Na dann öffne deine exe mal mit dem http://www.dependencywalker.com/ und schaue im linken Baum, welche DLLs deine Exe benötigt und kopiere zB. MSVCRT90.dll mit zu deiner Exe.
Du kannst aber auch statisch Linken:
Unter Projekteinstellungen - Linker, auf "Multithreaded" ohne DLL (/MT) stellen, dann braucht man keine MSVCRT90.dll mehr.
Mit den MFC-Dateien kann man das gleiche machen.
-
also nun habe ich dir untimes auf dem anderen Computer installiert und es geht immer noch nciht.
Und habe alle dlls mit hinein gefügt geht auch nicht.
.....
gibts da keine Funktion in vc++ woman die beim debuggen schon einfügt?
z.b. bei einer Windows Forms anwendung das muss doch ohne großen aufwand auf dem Zielrechner laufen...
-
Hast du einen Release-Build gemacht? Deine Exe darf nicht von einer MSVCRT90d.dll oder mfc80ud.dll abhängig sein (das ist bei einem Debug-Build so), denn diese werden mit dem VC-Runtime-Installer nicht installiert.
-
also einfach nur dieses kästchen oben wo Debug steht in Release umändern?
PS: geht immernoch nicht

PS²:
Nun: Gibt es eine Möglichkeit (bitte step by step anleitung für dumme wie mich) die Einstellungen von Visual c++ so anzupassen, dass ich überhaupt nichts mehr in der richtung großartig machen muss? Sodass die exe auch allein stehen kann und ohne was zu installieren?
-
cbacon93 schrieb:
PS: warum wird vor-raus zensiert? xD
-
Okay! Also habe jetzt hinbekommen statisch zu linken.
Dies ging aber nur unter Windows applicationen aber nicht mit Windows Forms anwendungen.gibts da eine alternative?
-
Windows Forms benötigen immer die .NET Runtime!
-
Anscheinend verwechseln das viele Neulinge, sie erstellen eine WinForms-Anwendung und denken sie arbeiten mit der Win-API oder MFC. Wäre wohl besser MS würde das in VS umbennen, z.B. ".NET" und nicht "CLR".
-
Achso und .NET ist keine Binärdatei sondern ein pre compiled IL-Code exe die dann Plattformunspezifisch ist.
okay habs verstanden und es geht jetzt vielen Dank!