Probleme mit fehlenden .dll



  • Standard(Autoren-9version oder ne bessere?



  • Autorenversion



  • hm dann klappt das statische Linken nicht, da wirst jede DLL einzeln raussuchen müssen und im Programmverzeichnis(also da wo deine exe ist) mitliefern. Tus ja nicht ins Systemverzeichnis^^



  • André78 schrieb:

    können die o.g. Programme eine .exe analysieren und anzeigen welche .dll benötigt werden?

    Dazu kannst du auch depends.exe nehmen: http://www.dependencywalker.com/



  • ...ich hätte daheeme noch ne VC++6 prof.!



  • Erstmal Dank an Alle. Was ich immer noch nicht verstanden habe, warum es nicht reicht, wenn ich Ihm die SDL.dll, SDL_ttf.dll,... mitgebe. Für was wird den die
    MSVCR70.DLL zum Beispiel benötigt.



  • Vielleicht für die CRT (C-Runtime), da Du es ja wolltest dass Du mit der DLL gelinket werden willst und nicht die statische CRT verwendet hast (die dann keine DLL benötigt).
    Wenn Du es umstellen willst gehen bitte in die Projekteinstellungen unter C/C++|Code-Generation und stelle "Runtime Library" um auf "Multi-threaded Debug (/MTd)" bzw "Multi-threaded (/MT)"



  • Ich bekomme dann immer folgende Fehlermeldungen:
    error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) already defined in LIBCMT.lib(typinfo.obj)
    error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) already defined in LIBCMT.lib(typinfo.obj)
    error LNK2005: _exit already defined in LIBCMT.lib(crt0dat.obj)
    error LNK2005: _strncpy already defined in LIBCMT.lib(strncpy.obj)
    error LNK2005: _fprintf already defined in LIBCMT.lib(fprintf.obj)
    error LNK2005: _fopen already defined in LIBCMT.lib(fopen.obj)
    error LNK2005: _fclose already defined in LIBCMT.lib(fclose.obj)
    error LNK2005: __isctype already defined in LIBCMT.lib(isctype.obj)
    warning LNK4098: defaultlib 'msvcrt.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
    fatal error LNK1169: one or more multiply defined symbols found

    was kann ich denn da tun?



  • Du musst bei allen LIBs die Du einbindest (und die auch die CRT verwenden) und bei Deinem Projekt die gleichen Einstellungen bzgl. der CRT haben (also entweder alle shared CRT oder alle static CRT).



  • Na bei mir fehlen...

    MFC42D.dll
    MFCD42D.dll
    MFCN42D.dll
    MFCO42D.dll
    MSVCRTD.dll
    EFSADU.dll

    Mein Programm läuft ohne Probleme, vorausgesetzt VC++6 AV bzw prof. ist installiert!
    Was wäre die galanteste Lösung um auch anderen Rechnern den Programmstart zu ermöglichen?

    Soll ich mir mit "inno setup" n Installerdialog basteln?
    Oder hab ich beim Kompilieren doch noch irgendwelche Einstellmöglichkeiten?

    P.S.
    @Pellaeon
    Warum sollten die fehlenden dlls nich ins Programmverzeichnis?



  • nicht ins Systemverzeichnis hab ich geschrieben, weil das müllt doch nur zu.



  • äh Systemverzeichnis meinte ich



  • Nochmal...bevors untergeht...

    André78 schrieb:

    Na bei mir fehlen...

    MFC42D.dll
    MFCD42D.dll
    MFCN42D.dll
    MFCO42D.dll
    MSVCRTD.dll
    EFSADU.dll

    Mein Programm läuft ohne Probleme, vorausgesetzt VC++6 AV bzw prof. ist installiert!
    Was wäre die galanteste Lösung um auch anderen Rechnern den Programmstart zu ermöglichen?

    Soll ich mir mit "inno setup" n Installerdialog basteln und die fehlenden dlls mit ins Programmverzeichnis kopieren?
    Oder hab ich beim Kompilieren doch noch irgendwelche Einstellmöglichkeiten?


Anmelden zum Antworten