DLL mit Unicode und ANSI-Unterstützung



  • Hallo alle zusammen,

    in der WinAPI sind ja sämtliche Funktionen in etwa so definiert:

    ... FunktionA();
    ... FunktionW();
    
    #ifdef UNICODE
    #define Funktion FunktionW
    #else
    #define Funktion FunktionA
    #endif
    

    Jetzt meine Frage: Wenn ich meine DLL so international bzw. barrierefrei wie möglich gestallten will, sollte ich die Funktionen, die ich exportieren will, genau so deklarieren?

    Oder sollte ich die DLL durchgehend nur mit Unterstützung für einen Zeichensatz programmieren und dem Benutzer die Umwandlungsarbeit überlassen?



  • hi,
    winapi macht das ungefähr so

    int funcW (unicode_arguments)  // unicode-version, hier steckt die echte funktionalität
    {
      ...
    }
    
    int funcA (ansi_arguments)  // ansi-version, nur ein stub
    {
      return funcW (convert_ansi_to_unicode (ansi_arguments));
    }
    

    🙂



  • Und wäre es sinnvoll wenn ich es in meiner DLL auch so machen würde? Oder einfach nur verschwendete Zeit? 😕



  • St.Pauli schrieb:

    Und wäre es sinnvoll wenn ich es in meiner DLL auch so machen würde? Oder einfach nur verschwendete Zeit? 😕

    wenn deine DLL auch in china oder saudi arabien benutzt werden soll, dann sollteste vielleicht unicode-unterstützung für mit strings einbauen. wenn nicht, ist es meiner meinung nach überflüssig...
    🙂



  • Okay, danke für deine Hilfe. 🙂

    Ich glaube, ich werde die DLL dann mit Unicode-Unterstützung erstellen.



  • Eigentlich kannst du ja auch gleich hergehen, und einfach nur Unicode-Funktionen anbieten. Spart dir etwas Arbeit und Zeit. Spricht IMHO eigentlich nix dagegen, heutzutage sollte man ja eigentlich auch Unicode verwenden (auch wenns kaum einer macht). Das Speicherplatz-Argument zählt nicht.


Anmelden zum Antworten