Eigenständiges exe-file

Gibt es eine Möglichkeit Visual-C++ 5 oder 6
Programme so zu compilieren, dass ich zu deren
Ausführung auf einem fremden Computer
(ohne installierte Entwicklungsumgebung)
keine dll’s kopieren muss?

Danke für die Hilfe, schon im Vorraus!

Gruss, Marco

Hi Marco!

Sicher, jedes EXE Programm, welches Du in C kompilierst wird so erstellt, daß Du keine DLL kopieren mußt! Da Windows auf die selben DLL zugreift ist die Laufzeitumgebung für C bereits auf jedem PC wo Windows läuft vorhanden !

LG
Mario

Da muß ich ein bischen widersprechen: Wenn Visual C++ 5 oder 6 benutzt wird, dann kann man eine reine Consolenapplikation schreiben, bzw. eine, die alleine auf die Windows-API zurückgreift. Meistens jedoch schreibt man die Programme z.B. mit der MFC Klassenbibliothek, und dann braucht man die MFC-Dlls.

Gruß
Moriarty

OK, wollte mich nicht als MFC’ler outen.

Konkret geht es um diese und um matlab-dll’s.

Kann doch nicht sein, dass ich immer alle dlls
mitkopieren muss. oder etwa doch?

Gruss, Marco

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Marco !

Warum willst du den unbedingt die dlls verwenden?
Nimm doch einfach die libs, die werden beim Erstellen des Programms fix dazugelinkt und du brauchst überhaupt nichts extra zu kopieren, nur das erstellte exe.

mfg
Christof

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Marco !

Warum willst du den unbedingt die dlls verwenden?
Nimm doch einfach die libs, die werden beim Erstellen des
Programms fix dazugelinkt und du brauchst überhaupt nichts
extra zu kopieren, nur das erstellte exe.

mfg
Christof

Hallo Christof,

eigentlich *will* ich die .dll’s ja gar nicht
verwenden :smile:
Wie bringt man dem Compiler bei, dass
er stattdessen die libs linkt?

Gruss,
Marco

Hi!

Wie bringt man dem Compiler bei, dass
er stattdessen die libs linkt?

In Visual Studio 6.0 so:

In die Projekteinstellungen gehen, und auf der ersten Dialogseite unter „Microsoft Foundation Classes“ auswählen: „MFC in einer statischen Bibliothek verwenden“. Dann wird der Code vom Linker in die Exe gestopft statt auf die DLLs zu verweisen.

Gruss, Ralf

In Visual Studio 6.0 so:

In die Projekteinstellungen gehen, und auf der ersten
Dialogseite unter „Microsoft Foundation Classes“ auswählen:
„MFC in einer statischen Bibliothek verwenden“. Dann wird der
Code vom Linker in die Exe gestopft statt auf die DLLs zu
verweisen.

Gruss, Ralf

Danke es funktioniert!

Kann man auf ähnliche Weise auch mfc-fremde
dlls dazulinken? (speziell matlab-dlls)

Gruss, Marco

Hallo,

Kann man auf ähnliche Weise auch mfc-fremde
dlls dazulinken? (speziell matlab-dlls)

Nee, leider nicht. Es gibt sozusagen zwei Versionen des MFC-Codes. Eine liegt als DLLs vor, die lib-Files verweisen nur in die DLLs. Die andere Version hat keine DLLs, da liegt der Code in den lib-Files. Mit den Projekteinstellungen sagst Du Compiler und Linker, welche Version sie verwenden sollen.

Wenn Du den Code aber nur als DLL hast, geht’s nicht anders.

Gruss, Ralf

hallo,
ich kompilliere nicht in „Debug“ Modus, sondern „Release“
so lange bis ich keine AktiveX verwende, ist Alles OK.
Die Programme sind kleiner und man braucht keine dlls zu kopierenn.

Lech

Wie kann ich denn beim Kompilieren in MS VC++ 6.0 zwischen „Debug“ und „Release“ wechseln? Finde die Dateien im Debug-Modus mit statisch verknüpfter Bibliothek etwas groß. Ne simple „Hello-World“ Anwendung ist schon ein gutes MByte groß. Wie schaffe ich es die entstehenden EXE-Dateien klein zu halten?

Danke.

Gruß Michael

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Michael!

Wie kann ich denn beim Kompilieren in MS VC++ 6.0 zwischen
„Debug“ und „Release“ wechseln?

Menu Build -> Set Active Configuration

Finde die Dateien im
Debug-Modus mit statisch verknüpfter Bibliothek etwas groß. Ne
simple „Hello-World“ Anwendung ist schon ein gutes MByte groß.
Wie schaffe ich es die entstehenden EXE-Dateien klein zu
halten?

Deswegen gibt es ja die zwei Versionen: Debug und Release.
Die Debug-Version verwendet man beim Entwickeln des Programms zum Fehlersuchen.
Sind alle Fehler eliminiert erstellt man die Release-Version die man dann ausliefert.

mfg
Christof

Hi,
Du kannst nach Bedarf die Konfiguration frei wählen
Menü: Erstellen | Aktive Konfiguration festlegen
da Hast Du ja Release oder Debug zur Auswahl

viel Spass
Lech