none
VS 2003 -> VS 2013 RRS feed

  • Frage

  • Hallo alle,

    ich portiere ein VS 2003 C++ Projekt nach VS 2013. Das VS 2003 Projekt enthält veraltete Verweise wie MFC71d.lib usw. Weiß jemand wie ich durch VS 2013 Projekteinstellungen die veralteten Verweise durch die aktuellen automatisch und korrekt ersetzen kann?

    Danke!


    Patrick

    Freitag, 5. Dezember 2014 08:28

Antworten

  • Verwendest Du denn Fremdbibliotheken (libs)? Ich vermute, dass eine dieser Fremdbibliotheken die MFC71d.lib anzieht. Das würde ich als allererstes geauestens prüfen!

    Nochmals zu dem erzeugen eines neuen VC Projektes in VC2013:

    Das Grundproblem ist einfach, dass Du je nach Projektumfang ein Konvertieren des Projektes von VC2003 nach 2013 nicht hinbekommst, weil die Versionen zu alt sind. Es kann sein, dass ein Umweg z.B. über ein VC2008 das Problem behebt, indem Du von VC2003 nach VC2008 konvertierst, und von VC2008 nach VC2013...

    Die Grundidee ien neues Projekt aufzusetzen ist einfach, dass die nicht mehr existierenden und anderen einstellungne die im VC2003 vorhanden waren nicht mehr relevant sind, wenn Du nur Deine quelldateien von VC2003 in ein VC2013 Projekt, das ähnlicjh ist umhängst. ich meine nicht, dass Du alles neu programmieren sollst, sondern das das Projektgerüst mit dne einstellungen im VC2013 dem Projekt nahe kommen sollte von VC2003, und Du eben nur die Datein in das Projekt importierst. Das sowas arbeit macht ist mir auch klar. Das ist aber leider so, gerade wenn man Projekte konvertieren möchte, die einen ser alten Ursprung haben.

    Ich persönlich kenne das von Projekten die von VC5 / VC6 dann irgendwann in damals VC2008 sollten. Da war bei einigen Projekten der ansatz nur die Quelldateien zu übernehmen, in ein neu erzeugtes Projekt der einfachste Weg, der mit vertretbarem Aufwand zum Ziel geführt hat.


    Best regards

    Bordon

    Note: Posted code pieces may not have a good programming style and may not perfect. It is also possible that they do not work in all situations. Code pieces are only indended to explain something particualar.

    Dienstag, 9. Dezember 2014 07:20

Alle Antworten

  • Hallo Patrick,

    In VS 2013 lautet der Name der Bibliothek mfc120d . Gibt es eine Besserung, wenn Du die Verweise im Projekt mit mfc120d.lib austauschst?

    Im folgenden Thread wird erklärt, wie man das ändern kann:
    Error LNK1104: cannot open file 'mfc71d.lib'

    Gruß,
    Dimitar


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.


    Freitag, 5. Dezember 2014 14:05
    Administrator
  • Hallo Dimitar,

    leider kann ich keinen expliziten Verweis auf mfc71d.lib finden. Die Anweisung #pargma comment (lib, “mfc71d”) ist ebenfalls nicht vorhanden.

    Vielleicht befinden sich diese Statements in den vor Jahren gebundenen Fremdleistungen in das Projekt? Was dann?

    Danke, Patrick


    Patrick

    Samstag, 6. Dezember 2014 09:50
  • Verwendest Du vielelicht Bibliotheken, die du mit VC2003 gebaut hast. Es kann sein, dass die die MFC71D.Lib anziehen.

    Bei einem Umstieg von einer so alten Vc Version ist es auch evtl. mal einen Versuch wert, sich mit VC2013 ein Projekt erzeugen zu lassen, das dem eigenen am ehesten entspricht. Dann würde ich die eigenen Quellen in dieses Projekt per Hand einfügen. Das stellt dann zumindest sicher, dass nicht irgendwo im Projekteinstellungs Urschelim doch irgendwo noch veraltete Einstellungen sind...


    Best regards

    Bordon

    Note: Posted code pieces may not have a good programming style and may not perfect. It is also possible that they do not work in all situations. Code pieces are only indended to explain something particualar.

    Montag, 8. Dezember 2014 06:02
  • Hallo Bordon,

    das Projekt hat vor ca. 18 Jahren angefangen und ist aus ca. 1500 Dateien zusammengesetzt. Viele davon sind von Fremdlieferanten auf die ich keinen Zugriff mehr habe. Trotz der Unmöglichkeit ein ähnliches Projekt mit VC 2013 zu erzeugen danke ich Dir für deinen gut gemeinten Vorschlag!

    Patrick


    Patrick

    Montag, 8. Dezember 2014 13:49
  • Verwendest Du denn Fremdbibliotheken (libs)? Ich vermute, dass eine dieser Fremdbibliotheken die MFC71d.lib anzieht. Das würde ich als allererstes geauestens prüfen!

    Nochmals zu dem erzeugen eines neuen VC Projektes in VC2013:

    Das Grundproblem ist einfach, dass Du je nach Projektumfang ein Konvertieren des Projektes von VC2003 nach 2013 nicht hinbekommst, weil die Versionen zu alt sind. Es kann sein, dass ein Umweg z.B. über ein VC2008 das Problem behebt, indem Du von VC2003 nach VC2008 konvertierst, und von VC2008 nach VC2013...

    Die Grundidee ien neues Projekt aufzusetzen ist einfach, dass die nicht mehr existierenden und anderen einstellungne die im VC2003 vorhanden waren nicht mehr relevant sind, wenn Du nur Deine quelldateien von VC2003 in ein VC2013 Projekt, das ähnlicjh ist umhängst. ich meine nicht, dass Du alles neu programmieren sollst, sondern das das Projektgerüst mit dne einstellungen im VC2013 dem Projekt nahe kommen sollte von VC2003, und Du eben nur die Datein in das Projekt importierst. Das sowas arbeit macht ist mir auch klar. Das ist aber leider so, gerade wenn man Projekte konvertieren möchte, die einen ser alten Ursprung haben.

    Ich persönlich kenne das von Projekten die von VC5 / VC6 dann irgendwann in damals VC2008 sollten. Da war bei einigen Projekten der ansatz nur die Quelldateien zu übernehmen, in ein neu erzeugtes Projekt der einfachste Weg, der mit vertretbarem Aufwand zum Ziel geführt hat.


    Best regards

    Bordon

    Note: Posted code pieces may not have a good programming style and may not perfect. It is also possible that they do not work in all situations. Code pieces are only indended to explain something particualar.

    Dienstag, 9. Dezember 2014 07:20
  • Hallo Bordon,

    danke für alle Tipps! Inzwischen bin ich etwas weiter gekommen und dadurch mit einem neuen Problem konfrontiert: Ich möchte einen DCOM-Server in Debug-Mode kompilieren. Ich erhalte folgende VS 2013 Fehlermeldung:

    error MIDL2311: statements outside library block are illegal in mktyplib compatability mode : [ Interface 'ICoKonfiguration'  ]

    In Configuration Properties / MIDL / MkTypLib Compatible ist auf No gesetzt. Muß ich noch etwas anderes setzen?

    Danke, Patrick


    Patrick

    Mittwoch, 10. Dezember 2014 14:15
  • Hallo Patrick,

    Da Bordons Hinweis für die Lösung der ursprünglichen Frage ausreichen sollte, wenn es um Bibliotheken geht, die vor VS 2003 gebaut wurden, markiere ich seine  Antwort. Wenn die Bibliotheken mit VS 2003 gebaut wurden und man auf sie Zugriff hat, kann man probieren, sie mit VS 2013 neuzukompilieren (was bei Deinem Projekt nicht der Fall ist). Bist Du mit dem DCOM Server weitergekommen?

    Gruß,
    Dimitar


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.


    Mittwoch, 17. Dezember 2014 15:45
    Administrator
  • Hallo Dimitar,

    leider hänge ich noch auf:

    Ich möchte den DCOM-Server in Debug-Mode kompilieren. Ich erhalte folgende VS 2013 Fehlermeldung:

    error MIDL2311: statements outside library block are illegal in mktyplib compatability mode : [ Interface 'ICoKonfiguration'  ]

    In Configuration Properties / MIDL / MkTypLib Compatible ist auf No gesetzt. Muß ich noch etwas anderes setzen?

    Inzwischen stellte ich fest, dass es sich um einen Microsoft-Fehler handelt (http://support.microsoft.com/kb/243219). Eine Lösung habe ich aber nicht!

    Patrick


    Patrick

    Donnerstag, 18. Dezember 2014 08:57
  • Hallo Patrick,

    Würdest Du überprüfen, ob die Beschreibung aus den folgenden zwei KB-Artikeln für Deinen Fall zutrifft?

    Fehler: Fehler MIDL2311 beim Kompilieren eines MFC-ActiveX-Steuerelements mit Internet Explorer 5.5-Headern
    Update: Platform SDK verursacht MIDL2311 Fehler

    Gruß,
    Dimitar


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Donnerstag, 18. Dezember 2014 14:42
    Administrator
  • Hallo Dimitar,

    leider nicht. Der erste Fall bezieht sich auf ActiveX mit IE. Der Zweite Fall nähert sich. In meinem Projekt befindet sich jedoch keine .odl-Datei sondern .idl. Der Vorschlag zeigt keine Wirkung.

    Patrick


    Patrick

    Freitag, 19. Dezember 2014 09:52