Forum: PC-Programmierung MS Visual Studio.Net 2003 Prof


von Sarah Heimbach (Gast)


Lesenswert?

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

von Sebastian (Gast)


Lesenswert?

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

von Matthias (Gast)


Lesenswert?

Hi

ein C++ Programm wird doch das .net-Framework nicht brauchen oder etwa
doch? Welche DLL fehlt denn?

Matthias

von Rufus T. Firefly (Gast)


Lesenswert?

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".

von Sarah Heimbach (Gast)


Lesenswert?

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???

von Sebastian (Gast)


Lesenswert?

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

von Rufus T. Firefly (Gast)


Lesenswert?

"wenn du Managed C++ verwendest, hast du den vorteil das du von
grausamen programmiererverbrechen abgehalten wirst."

Das ist ein Paradoxon.

von Thomas X. (Gast)


Lesenswert?

c++ selber ist ein verbrechen, ob managed oder nicht spielt da auch
keine rolle.

von Matthias (Gast)


Lesenswert?

Hi

au ja. Ein Programmiersprachenflamewar. Ich hohl schon mal des
Popcorn.


Matthias

von Chris (Gast)


Lesenswert?

> 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

von Thomas X. (Gast)


Lesenswert?

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

von Rufus T. Firefly (Gast)


Lesenswert?

Lieber Thomas X., was ist denn für Dich kein Verbrechen?
Ein Wirth-Produkt?

von mthomas (Gast)


Lesenswert?

dependency walker duerfte helfen. Ist bei VS "dabei". Ansonsten
www.dependencywalker.com

von Rufus T. Firefly (Gast)


Lesenswert?

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.

von Chris (Gast)


Lesenswert?

> 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

von Sarah Heimbach (Gast)


Lesenswert?

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

von Rufus T. Firefly (Gast)


Lesenswert?

"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
Noch kein Account? Hier anmelden.