CRT - Includes, Funktionen & Libraries
-
Hey,
Würde gerne beim programmieren auf die CRT verzichten. So das jeder der mein Programm nutzen möchte, nicht die die Visual C++ Redistributable installiert haben muss. Mein Projekt ist relativ klein und ich möchte nicht statisch linken!
Ich will unbedingt das die Datei schön klein bleibt.
Gibt es irgendwie eine Liste in der Includes, Funktionen oder Libraries stehen die ich meiden muss damit mein Programm problemlos läuft? Oder gibt es sonnst einen Trick?
-
WinAPI wird dir nichts helfen, da die WinMainCRTStartup/mainCRTStartup die CRT verwendet, und sie somit immer verwendet wird.
Sag deinem Compiler, dass er dies zu unterlassen hat. /nodefaultlib oder /entry sollten hierbei helfen.
Und anstatt auf die CRT zu verzichten, kannst du dir deine eigene msvcrt.lib basteln, die dann halt auf die msvcrt.dll verweist, die auf jedem Windows vorinstalliert ist.
-
Schon andere haben sich mit damit beschäftigt, wie man neuere Versionen von Visual Studio dazu bringen kann, auf die normale MSVCRT.DLL zuzugreifen, z.B.:
http://kobyk.wordpress.com/2007/07/20/dynamically-linking-with-msvcrtdll-using-visual-c-2005/
(Dynamically linking with MSVCRT.DLL using Visual C++ 2005)Ob das aktuell noch so geht, weiß ich nicht.
Eine Suche im Web nach MSVCRT.DLL fördert sicher noch mehr Ergebnisse zutage.
-
Warum linkst Du nicht statisch, dann brauchst Du keine redist mitliefern...
http://blog.kalmbach-software.de/de/2008/03/05/wie-man-statisch-gegen-die-c-runtime-crt-linkt/
-
Will ja die Datei so klein halten wie möglich und durch die CRT wird sie riesig.
-
Dann mach es doch so:
http://blog.kalmbach-software.de/2008/02/02/smallest-application-size-for-win32-console-application/
-
Unwissender User schrieb:
Will ja die Datei so klein halten wie möglich und durch die CRT wird sie riesig.
Wenn Du die CRT mit auslieferst verteilst Du nur die MBs auf mehrere Dateien...
Was willst Du? Einfaches Deployment oder gute Speicherausnutzung auch über mehrere Programme?
-
Wenn Du die CRT mit auslieferst verteilst Du nur die MBs auf mehrere Dateien...
Sorry, aber versteh ich nicht ganz...
-
Unwissender User schrieb:
Wenn Du die CRT mit auslieferst verteilst Du nur die MBs auf mehrere Dateien...
Sorry, aber versteh ich nicht ganz...
Er meint: Egal ob du statisch oder dynamisch linkst: Du hast immer diese Größe von Dateien. Nur beim statischen Linken ist sie eben in einer Datei und beim dynamischen Linken ist sie auf mehrere Dateien verteilt.