Probleme mit VC++6 Projekt beim Kompilieren/Linken mit VC++ 2003.Net



  • Wenn Du sie selber erstellst, kannst Du ja in den Projekteinstellungen nachschauen!
    Mittels dumpbin sollte es auch möglich sein... Du kannst auch die Linker-Settings auf Verbose stellen, dann wird beim Linken viel mehr angezeigt...



  • habe mal auf VERBOSE gestellt. Im Buildlog steht zwar mehr drin, aber damit kann ich wenig anfangen. Studiere nur ET nicht Informatik. Keine Ahnung was ich damit anfangen soll.

    Die LIBs hab ich nicht selbst erstellt sondern nur eingebunden. Das einzige was ich kompiliere ist eine .cpp Datei Diese wird dann mit den bereits fertigen LIBs und den MS-Standard(???) Libs gelinkt. Meine Vermutung ist, das die fertige "TestPrjPlatformCtrllib"lib, mit der VC++6.0 erstellt wurde und die Standardbibliothek iostream.h verwendet wurde. Da diese ab VC++ 2003 verändert/verschoben (??) wurde kommt es zur Fehlermeldung (Nr. 12, siehe unten).

    ...aber wie gesagt ich vermute nur. Ich denke ich werde morgen wieder mal das alte Visual Studio6.0 installiern und versuchen das ganze damit zu erstelle...

    ---
    Fehler 8 error LNK2005: "public: __thiscall std::_Lockit::~_Lockit(void)" (??1_Lockit@std@@QAE@XZ) ist bereits in PrjPlatformClientLib.lib(ChkIni.obj) definiert. libcpmtd.lib
    Fehler 9 error LNK2005: "public: __thiscall std::bad_cast::bad_cast(char const *)" (??0bad_cast@std@@QAE@PBD@Z) ist bereits in PrjPlatformClientLib.lib(ChkIni.obj) definiert. LIBCMTD.lib
    Fehler 10 error LNK2005: "public: __thiscall std::bad_cast::bad_cast(class std::bad_cast const &)" (??0bad_cast@std@@QAE@ABV01@@Z) ist bereits in PrjPlatformClientLib.lib(ChkIni.obj) definiert. LIBCMTD.lib
    Fehler 11 error LNK2005: "public: virtual __thiscall std::bad_cast::~bad_cast(void)" (??1bad_cast@std@@UAE@XZ) ist bereits in PrjPlatformClientLib.lib(ChkIni.obj) definiert. LIBCMTD.lib
    Fehler 12 fatal error LNK1104: Datei "libcp.lib" kann nicht geöffnet werden. TestPrjPlatformCtrllib
    ---



  • Wenn Du STL Dinge verwendest musst Du für alle LIBs/EXEn die gleichen Compiler verwenden!



  • Ok. Wenn also in den Projekteinstellungen unter "Eingabe" bei "Standard Bibliothek ignorieren" "Nein" eingestellt ist und die bereits kompilierten LIBs mit einem anderen Compiler erstellt wurden, kann ich das Projekt nicht mit einer neueren Version von VC++ erstellen. Ich muss dann die selbe Version verwenden mit der die bereits kommpilierten LIBs erstellt wurden. Also VC++ 6.0. Gibts da auch unterschiedliche Versionen? Habe ich das so richtig verstanden?

    Sorry. Ich bin a bisserl anstrengend, oder? Habe so gut wie keine Erfahrung mit VC++. Ist alles neu für mich. Habe bis jetzt immer mit GCC, UNIX und der Kommandozeile gearbeitet...



  • Es spielt keine Rolle, was Du im Projekt eingestellt hast. Das wichtigste ist: Wen eine LIB irgendwas von der STL/MFC/ATL verwendet und in den Funktions-Signaturen exportiert, dann müssen alle mit dem gleichen Compiler erstellt sein (Service Packs spielen AFAIK keine Rolle).

    Wenn Du Fragen hast, darfst Du ruhig Fragen! Deswegen ist dieses Forum ja da!



  • Im Klartext bedeutet das: Um mit VC++ 03 das Projekt erstellen zu können benötige ich die Sourcecodes der zusäztlichen LIBs. Wenn ich die nicht bekomme muss ich den selben Compiler verwenden. Das heist VC++ 6.0 installieren....



  • Du hast es auf den Punkt getroffen!



  • VC6, gibts das noch wo anders als bei Ebay? Irgendwelche offiziellen Quellen? 😃



  • Installiert, Kompiliert,

    ---
    PrjPlatformClientExe.exe - 0 Fehler, 0 Warnung(en)
    ---

    Na endlich. Na ja, jetzt kenne ich die Projekteigenschaften von VC++6.0 - VC++2005 so gut wie auswendig und habe alle Versionen auf 3 Verschiedenen Rechnern installiert. Jetzt kann ich auch mit meiner Studienarbeit anfangen. Der Vorteil ist nun das ich meinem Prof. genau erklären kann warum ich mit 6.0 arbeiten muss.

    Übrigens: Das Thema ist Testen der API eines mobilen Roboters.

    Vielen Dank noch mal.



  • An meiner FH kann man sich von Visual Studio 6.0 Professional - Visual Studio 2005 Professional ganz legale kopien erstellen, in sofern man dort studiert.

    http://www.fh-aschaffenburg.de/index.php?id=softwarelizenzen

    Alles für Forschung und Lehre. Dafür ein dickes lob an Bill G. 👍 .Diese Versionen müssen auch registriert werden. Ausser 6.0 anscheinend. Als ich da auf Registrieren gegangen bin kam ich bei msdn raus, aber diese Seite hat nicht mehr existiert.



  • Ich bin leider kein Student. 😞



  • Aber beklagen kannst Du Dich auch nicht 😉
    VS6 ist leider nicht mehr beim MSDN dabei, da es abgekündigt ist und es (Lizenz-) Probleme mit Java gab... Aber schau doch mal ob es auf der VS2003 DVD drauf ist...


Anmelden zum Antworten