VC++ .NET - Ohne .manifest geht nix!



  • Hallo,
    ich benutze Visual Studio und wenn ich ein Programm kompiliere, dass sich z.B. "Fenster.exe", dann erstellt VS immer noch zwei andere Dateien - "Fenster.exe.intermediate.manifest" und "Fenster.exe.manifest". Wenn ich aber diese beiden Dateien lösche, dann funktioniert das Programm nicht und es kommt der Fehler, dass die MSVCR71.dll nicht gefunden wurde. Wenn ich in meinen Konfigurationen im Compiler, dass erstellen dieser Manifest-Dateien ausstelle, dann kommt nach dem kompilieren wieder dieser Fehler. Wie kann ich das Problem lösen?
    Und nochwas: wenn ich trotzdem diese drei Dateien an meinen Freund gebe und er das Programm starten will, dann kommt eine Meldung, dass ihm irgendetwas fehlt (wie auch mein Fehler oben). Und ich habe es mindestens 5 weiteren Freunden gegeben und bei jedem kam dieser Fehler, nur bei mir nicht. Eventuell muss ich beim kompilieren irgendetwas einbinden oder so? Ich benutze weder MFC noch ATL.
    Für Hilfe wäre ich sehr dankbar!



  • Haben deine Freunde eine installierte .net Runtime ?



  • Sag mal an um welche Sprache es sich handelt. (VB, C#, C++,....)



  • Es ist C++ und ohne .NET! Ich habe auch es so angegeben, dass es kein .NET ist sondern nur "normales" C++.



  • Wenn dem so ist solltest du die Einstellungen anschauen. Ich hatte noch nie manifestdateien. Und wenn dann braucht sie das Programm nicht. Lediglich DLL sind mitzuliefern da die 7.1er nicht auf einem Windowssystem drauf sind. Warum z.B. in SP 2 für XP nicht weiß nur MS.



  • Sehr merkwürdig.

    Also du erstellst ein neues C++ Projekt für Win32, bzw. Konsole und verstellst nichts weiter in den Projekteinstellungen?

    Überprüfe nocheinmal in den Projekteinstellungen die Laufzeitbibliothek und die in den Linkereinstellungen das Ziel-Subsystem.



  • Habe bei VS unter den Projekteinstellungen nun mal das probiert:
    Unter C/C++->Code Generation->Runtime Library
    umgestellt von "Multithreaded DLL (/MD)" auf "Multithreaded (/MT)", aber nunr krieg ich beim Linken viele Fehler:

    Linking...
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: _memmove already defined in LIBCMT.lib(memmove.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: _strncmp already defined in LIBCMT.lib(strncmp.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: _isspace already defined in LIBCMT.lib(_ctype.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: _strchr already defined in LIBCMT.lib(strchr.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: _malloc already defined in LIBCMT.lib(malloc.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: _realloc already defined in LIBCMT.lib(realloc.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: _free already defined in LIBCMT.lib(free.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: _calloc already defined in LIBCMT.lib(calloc.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: _isdigit already defined in LIBCMT.lib(_ctype.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: _strncpy already defined in LIBCMT.lib(strncpy.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: _atoi already defined in LIBCMT.lib(atox.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: _tolower already defined in LIBCMT.lib(tolower.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: _strtol already defined in LIBCMT.lib(strtol.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: _isprint already defined in LIBCMT.lib(_ctype.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: __atoi64 already defined in LIBCMT.lib(atox.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: _isupper already defined in LIBCMT.lib(_ctype.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: _isalpha already defined in LIBCMT.lib(_ctype.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: _getenv already defined in LIBCMT.lib(getenv.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: _exit already defined in LIBCMT.lib(crt0dat.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: _strrchr already defined in LIBCMT.lib(strrchr.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: _isxdigit already defined in LIBCMT.lib(_ctype.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: __errno already defined in LIBCMT.lib(dosmap.obj)
    MSVCRT.lib(MSVCR80.dll) : error LNK2005: _abort already defined in LIBCMT.lib(abort.obj)
    MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) already defined in LIBCMT.lib(typinfo.obj)
    MSVCRT.lib(ti_inst.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)

    Benutze mittlerweile Visual Studio 2005 Beta, aber trotzdem sowas.
    Liegt es irgendwie an dieser MD-Einstellung? Achja ich benutze Qt!
    Danke!



  • für hilfe und vorschläge wäre ich sehr dankbar!


Anmelden zum Antworten