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?
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 !
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.
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]
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
Wie bringt man dem Compiler bei, dass
er stattdessen die libs linkt?
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.
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)
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.
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.
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]
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.