Hallo, benutze Visual Studio.Net und möchte nun die Exe Datei meines C++ Programmes auf einem anderen PC ausführen. Dazu habe ich sie einfach aus dem Debug Ordner kopiert und aufgespielt. Leider gibt es immer einen Fehler. Habe gelesen, man müsste bei Visual Studio.Net dll's mitgeben??? Was genau muss ich tun? Sind Einstellungen vor dem "Build"-Vorgang notwendig? Danke Sarah Heimbach
du musst einfach nur das net framework auf dem anderen pc installieren. alle dlls die Visual studio linkt die nicht standart sind, kopiert es schon in den debug ordner. Sebastian
Hi ein C++ Programm wird doch das .net-Framework nicht brauchen oder etwa doch? Welche DLL fehlt denn? Matthias
Ein C++-Programm benötigt das .Net-Geraffel, wenn es "Managed C++" verwendet. Das ist eine Perversion, die sich Microsoft ausgedacht hat. Yuck. Normale C++-Programme kann man statisch linken, so daß keinerlei zusätzliche DLLs benötigt werden; dann allerdings ist das resultierende .Exe-File einige Megabytes groß. In Anbetracht heutiger Festplatten kann einem das im Grunde genommen wurscht sein - nicht zu unterschätzender Vorteil ist die Umgehung der "DLL hell".
Soll das jetzt heißen, dass ich mein Programm nicht auf einem anderen Computer ausführen/benutzen kann ohne dort auch das Visual Studio.Net zu installieren? Wie soll man Software verkaufen können, wenn das nicht geht???
nein, da verstehst du was falsch. das ist ähnlich wie bei java. du hast auf deinem entwicklungsrecher das .net framwork (runtime) und das .net framework (sdk) also die entwicklung/compiler.. das ist ja völlig unabhängig von der verwendeten IDE wie zb. VisualStudio.Net. Auf dem Kundenrechner muss dann nur das .Net framework (runtime) installiert sein/werden. das ist in etwa 22Mb groß. die Net SDK ist glaube ich >100. wenn du Managed C++ verwendest, hast du den vorteil das du von grausamen programmiererverbrechen abgehalten wirst. Sebastian
"wenn du Managed C++ verwendest, hast du den vorteil das du von grausamen programmiererverbrechen abgehalten wirst." Das ist ein Paradoxon.
c++ selber ist ein verbrechen, ob managed oder nicht spielt da auch keine rolle.
Hi au ja. Ein Programmiersprachenflamewar. Ich hohl schon mal des Popcorn. Matthias
> c++ selber ist ein verbrechen, ob managed oder nicht spielt da auch > keine rolle. genaaauuu, QBASIC rockt! </sarkasmus> Dann verrat mir doch mal, wieso professionelle Software so selten in anderen Programmiersprachen als C oder C++ geschrieben wird. bierzumpopcornhol
Ich wusste gar nicht, das Professionalität bei Software in erster Linie von der eingesetzten Programmiersprache abhängt. Wenn QBasic neben C++ die einzige Sprache ist, die du kennst, lieber Chris, ist natürlich klar dass du C++ den Vorzug gibst :D
Lieber Thomas X., was ist denn für Dich kein Verbrechen? Ein Wirth-Produkt?
dependency walker duerfte helfen. Ist bei VS "dabei". Ansonsten www.dependencywalker.com
Für's erste reicht bereits ein dumpbin /imports <exefile.exe> Dumpbin ist ein Wrapper für den MS-Linker und kann übrigens auch als Disassembler genutzt werden. Kurz: Ob die .Net-Runtime benötigt wird, ob irgendwelche MFC-DLLs benötigt werden, all' dies hängt von den Projekteinstellungen (und der Art des Projektes) in der Entwicklungsumgebung ab. Die müsste Sarah uns mal nennen, dann ließen sich ihr detailliertere Hinweise geben.
> Ich wusste gar nicht, das Professionalität bei Software in > erster Linie von der eingesetzten Programmiersprache abhängt. Ein falcher Umkehrschluss aus meiner obigen Aussage. > Wenn QBasic neben C++ die einzige Sprache ist, die du kennst, lieber > Chris, ist natürlich klar dass du C++ den Vorzug gibst :D Klassischer Verlauf eines Flamewars. Versuchter Angriff auf den persönlichen Wissensstand des Gegenübers. Nein, darauf lasse ich mich heute nicht ein. Da ess ich lieber mein Popcorn. :) EOT
Hallo, danke für die Tipps! Habe dieses net framework auf dem anderen Pc installiert und es läuft jetzt auch. Was ich erstellt habe, war ein leeres Projekt und habe da einfach eine *.cpp Datei erstellt. Daher wird es wohl dann auch mit dieser einfachen Hilfestellung funktioniert haben. Meine Programmierkenntnisse sind noch nicht so ausgeprägt, dass ich Visual Studio.Net ausnutzen kann. Gruß Sarah
"Was ich erstellt habe, war ein leeres Projekt" - dabei wurden Dir aber verschiedene Optionen angeboten, was für ein Projekt. Du hast offensichtlich "Managed C++" ausgewählt, was dafür sorgt, daß das .Net-Geraffel erforderlich ist. Zu Deinem .Exe-File musst Du so also "nur" das ca. 20 MByte große .Net-Framework ausliefern. Würdest Du "richtiges" C++ auswählen, dann entfiele der .Net-Anteil, dann müsstest Du noch entscheiden, ob mit oder ohne MFC und ob statisch oder dynamisch gelinkt werden soll. Dynamisch bedeutet, daß MFC- und C-Runtime-DLLs erforderlich sind, statisch bedeutet, daß keine DLLs erforderlich sind.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.