DLLs als Ressourcen einbinden



  • Hi,
    ich hab ein Programm in VC++ geschrieben. Da diese Programme ja so DLLs wie MFC42d.dll usw. benötigt wollte ich wissen ob es möglich ist diese DLLs als Ressourcen in die Exe einzubinden, damit ich kein Setup Paket bauen muss, dass die dlls immer mitinstalliert.
    Ist das irgendwie möglich?
    Und nebenbei: Welche DLLs benötigt ein VC++ Programm? MFC42d.dll weiss ich, aber es benötigt ja noch mehr...

    Thx!



  • Projekt->Einstellungen-> MFC statisch linken

    falls du die alte Autorenversion zur 6er hast da geht das nicht.



  • Stell erstmal von Debug auf Release um.
    Die Debug-Dlls darfst du nicht an Enduser weitergeben!



  • Pellaeon schrieb:

    Projekt->Einstellungen-> MFC statisch linken

    falls du die alte Autorenversion zur 6er hast da geht das nicht.

    Stimmt, das ist dann der nächste Schritt.
    Aber MFC42d deutet auf VC6 hin.



  • estartu schrieb:

    Stell erstmal von Debug auf Release um.
    Die Debug-Dlls darfst du nicht an Enduser weitergeben!

    Hat zwar nix mit der eigentlichen Frage zu tun, aber ich stand vorhin vor dem gleichen Problem und frage mich nun, warum man die DLLs nicht weitergeben darf. Und was ist dann diesbezüglich der Unterschied zwischen Debug und Release?



  • Sry, hab VC 7, hatte ich vergessen...

    Hab jetzt auf Release umgestellt, wo muss ich denn bei 7 umstellen dass er es statisch linken soll???



  • Mr. Kanister schrieb:

    Sry, hab VC 7, hatte ich vergessen...

    Hab jetzt auf Release umgestellt, wo muss ich denn bei 7 umstellen dass er es statisch linken soll???

    auch projekt->eigenschaften und dort "Verwendung von MFC" in den Projektstandards
    achtung, du musst das bei Release und Debug version einstellen



  • Falls MFC verwendet wird:
    "Project|Properties|General: Use of MFC: Use MFC in Static Library"
    Für ATL eins tiefer...

    Für CRT:
    "Project|Properties|C/C++|Codegeneration: Runtime Library: (irgendwas auswählen OHNE DLL)"



  • Sry noch was komisches....
    Ich hab bei Debug und Relese jetzt alles umgestellt.
    Wenn ich jetzt ne Debug .exe kompiliere, dann werden die dlls eingefügt, weil die exe dann deutlich größer (2.1 MB) als die alte ohne (ca. 380kb) dlls ist.
    Die Release .exe ist aber nicht größer, sie ist wie bisher ca. 380 kb groß...
    Und wenn ich die Release .exe ausführe, dann startet das Programm nicht. Es kommt nichtmal ein Fehler, sondern gar nichts....
    Es funktioniert nur, wenn ich die Release in VS .net als "Debug" starte. Bei "Starten ohne debuggen" kommt in VS .net auch nix....



  • Die Dateigrößenunterschiede sind normal, die Release-.exe wird dabei nur geringfügig größer.


Anmelden zum Antworten