wstring / #include <string> unter C ?



  • Hallo ich hab ein kleines Problem ich habe einen c++ code und verwende da
    #include <string>
    und wstring

    Nun möchte ich es als C-Code kompilieren (/TC) naja und da bekomme ich gleich ne ganze reihe toller Fehlermeldungen:
    Syntaxfehler: Es fehlt '{' vor ':'

    Nun meine Frage wie kann ich wstring verwenden damit ich keine Fehlermeldungen mehr bekomme?



  • Du müsstest wohl alles umschreiben. Stringhandling in C und C++ sind grundsätzlich verschieden (C: Einfache nullterminierte Teichenketten, C++: Stringklassen). Ein einfaches include-Tauschen wird es sicher nicht lösen.

    Stellt sich mir aber die Frage warum du es überhaupt als C kompilieren willst?



  • ah ok hm dann muss ich mal sehen wie ich das mache ^^
    Naja hab code für 2 dlls eine ist in C und eine in C++ geschrieben und ich würde gerne beides in einer Dll vereinen. Und da ich mit C/C++ noch am Anfang stehe habe ich da so meine Probleme 😉



  • Das DLL-Konzept wurde unter anderem seienerzeit entwickelt um die DLL in verschiedenen Sprachen schreiben zu können, Beispiel: C, C++, Pascal, Basic und weitere, und die Funktionen auch in anderen als der "DLL-Erstellersprache" nutzen zu können.

    Also, wenn eine DLL gut ihre Aufgabe erfüllt und die Schnittstelle sauber funktioniert, dann lass sie wie sie ist. Meisst werden die DLL ja von mehreren Programmen genutzt - nicht das du da bei der Verbesserung etwas änderst und ein anderer Nutzer Probleme mit der DLL bekommt.

    Da die DLL-Schnittstelle vom Konzept her am umfangreichsten in C dokumentiert ist und, wenn die von anderen Sprachen als C oder C++ genutzt werden soll, am besten den C-Konventionen folgt.

    Dll in C++ geschrieben, die an der Schnittstelle C++"-Regeln" entsprechen, lassen sich meisst nur unter C++ nutzen und machen den Nutzern anderer Sprachen Probleme.



  • Auch sind C++ DLLs sehr Kompilergebunden, da die Implementierungen der STL unterschiedlich ausfallen und es dann zu Problemen kommt.



  • hm ok dann lasse ich es bei 2 dlls 🙂

    vielen Dank für eure Hilfe.


Log in to reply