Konvertierung



  • Z.B.: anzahl_satz1 = strlen(satz1);



  • Falsch oder nicht, die "alten" Projekte MÜSSEN laufen auf VS 2005 OHNE das ich am Code was ändern muss!!!

    Und soooo falsch können die niocht sein....es wurde halt jedem Entwickler selbst überlassen wie konsequent er Programmiert.
    Genau diese Feature will ich WIEDER.



  • Ist satz1 ein std::string?

    Dann mußt du sowas machen:

    anzahl_satz1 = strlen(satz1.c_str());
    

    Wobei man sich fragen sollte, warum du nicht korrekterweise das machst?

    anzahl_satz1 = satz1.length();
    

    strlen ist eine C-Funktion, ist garnicht nötig in einem C++-Programm...



  • EMPIRE schrieb:

    Falsch oder nicht, die "alten" Projekte MÜSSEN laufen auf VS 2005 OHNE das ich am Code was ändern muss!!!

    Und soooo falsch können die niocht sein....es wurde halt jedem Entwickler selbst überlassen wie konsequent er Programmiert.
    Genau diese Feature will ich WIEDER.

    Ganz ruhiger brauner.
    Es gibt eine offizielle ISO-C++-Norm seit 1998. Und der MSVC6 hat sich damals nunmal nicht daran gehalten. Seit MSVC2003 hält sich Microsoft aber (zum Glück) an der ISO-C++-Norm, weil der MSVC6 leider nicht korrekt war. (weil er auch 1997/98 rauskam)

    Ihr habt jetzt auf MSVC2005 umgestellt und euch somit bewusst (oder unbewusst) auf ISO-C++ eingelassen. Euer Code ist also nicht ISO-C++ konform - in euren Augen anscheinend gut? Aber ich denke, für den Rest der Welt eher nicht. 😉

    Entweder ihr migriert auf ISO-C++ oder bleibt bei MSVC6. Wenn man auf eine neue Entwicklungsumgebung umstellt, muß man IMMER evaluieren, ob man sich das leisten kann. Wenn ihr von MSVC2005 profitieren wollt, müsst ihr nunmal in eine Migration investieren. Wenn euch die Migration zu teuer ist, scheint sich auch MSVC2005 nicht zu lohnen...

    Ganz einfache wirtschaftliche Entscheidungen.



  • An artchi: vom prinzig her ja!
    Es ist auch nur ein Beispiel gewesen.

    mir geht es um die fehlermeldung generell die erzeugt werden bei VS 2005 im gegensatz zu VS 6.
    Ich würde gerne alle Projekte die mal unter VS 6 erstellt worden sind unter VS 2005 laufen lassen, ohne eine Änderung vorzunehmen.
    Schließlich sind die ja, bzw. laufen immer noch, unter VS 6 gelaufen.



  • mag sein das du recht hast.

    Meine Frage: Kann ich dies unter VS 2005 umgehen oder nicht?

    Ob das gut oder schlecht ist lass dahingestellt sein!



  • Es gibt keinen Schalter im MSVC2005, der sagt "beachte nicht korrektes C++". Es gab schliesslich schon 2 Compiler Versionen zwischen MSVC6 und MSVC2005. Wie lange soll MS noch unkorrekten C++-Code supporten? Kann keiner ernsthaft wollen?

    Einziger Workaround der mir spontan einfällt: euren alten Code in eine DLL auslagern (natürlich noch unter MSVC6), und unter MSVC2005 als DLL verlinken. Und zumindest neuen Code unter MSVC2005 schreiben. Alten weiter unter MSVC6 pflegen.



  • Danke für die Aussage!

    Wünsche noch nen angenehmen Sonntag abend!!!



  • hi Empire,

    MSVC war leider vor der Version 2005 und noch mehr vor der Version 2003 nicht standard-konform, was ja schon einige hier geschrieben haben. MS selbst hatte seinerzeit angekündigt, dass die Version 2005 weitgehend der gültigen C++ Norm entsprechen wird (weiß´nicht mehr wo das stand, aber wenn du bei MS nach diesen Kompatibilitätsfehlern suchst, weist MS schon auf diese Problematik hin). Die mit Version 2005 vorgenommenen Anpassungen betreffen vor allem auch Klassen und Klassen-Templates, und darunter leiden wir erheblich.

    Lange Rede kurzer Sinn: Alte Programme sind nicht mehr mit der Version 2005 kompatibel, also gehts nur mit Änderungen.

    Hier bei uns stellen wir schon seit über einem Jahr wirklich große Programmsysteme auf die 2005 Version um, und die Änderungen sich z.T. erheblich! In einem Fall sind wir wieder auf MSVC6 zurückgegangen, weil einfach z.Z. keine Kapazität vorhanden ist, um die Anpassungen vorzunehmen.

    Zähneknirschend muss man sich jetzt eingestehen, dass man sich in der Vergangenheit zu sehr auf den MS-propritären C++Standard verlassen hatte, man war zu lasch mit Sprach- und Programmierstandards. MS hat auch keinen "Schalter" in Version 2005 eingebaut, mit dem man wieder zur alten (nicht Norm-konformen!) MSVC6-Syntax zurückkehren könnte, leider.

    Ich befürchte also, dass du ohne Änderungen nicht weiterkommen wirst oder du kehrst wieder zu MSVC6 vor 2003 zurück.

    vg tesu



  • Hi tesuji,

    vielen dank für die Info.
    Sie war sehr Infomativ.
    Muss ich wohl so hinnehmen 😞

    Nun jut, ich muss da nun auch wohl mich umstelle.

    Danke dir vielmals 🙂


Anmelden zum Antworten