VisPDF und wchar_t



  • Hallo. Ich habe damals VisPDF gekauft (Anbieter ist scheinbar nicht mehr existent) für C++Builder2009. Ich möchte einen Unicode Text im PDF ausgeben und der Befehl ist dafür:

    VPDF->CurrentPage->UnicodeTextOutStr(10, 10, 0, "Text");
    

    Klappt auch super, allerdings nur solang ich das Projekt unter "_TCHAR entspricht: char" belasse. Sobald ich mein benötigtes "wchar_t" einstelle, bricht er mit Compilerfehler ab.

    struct GlyphCodes
    {
    public:
    	System::Word CODE;
    	System::Word UNICODE; // << [BCC32 Fehler] Vpdffontrecords.hpp(346): E2321 Deklaration deklariert weder ein Tag noch einen Bezeichner
    	System::Word GlyphID;
    	System::Word SerialNumber;
    	bool Hidden;
    };
    

    Hat jemand eventuell eine Ahnung was ich machen muss um wchar_t nutzen zu können?



  • Da ich die Source der Komponente habe, habe ich mal spaßeshalber das
    System::Word UNICODE;
    in
    System::Word UNI_CODE;
    überall abgeändert (in 2 Dateien)

    Jetzt erhalte ich folgenden Fehler (nur in/mit Compiler Option wchar_t!):
    [ILINK32 Fehler] Error: Nicht auflösbares externes 'wWinMain' referenziert von C:\PROGRAMME\CODEGEAR\RAD STUDIO\6.0\LIB\C0W32W.OBJ

    EDIT:

    Lösung habe ich hier gefunden: http://www.c-plusplus.net/forum/viewtopic-var-t-is-226912.html Danke!

    Allerdings stellt sich mir die Frage wieso? Bei anderen Projekte, in denen ich wchar_t unter Optionen nutze musste ich dies nicht einstellen, wieso jetzt hier?



  • ~PDF schrieb:

    Klappt auch super, allerdings nur solang ich das Projekt unter "_TCHAR entspricht: char" belasse. Sobald ich mein benötigtes "wchar_t" einstelle, bricht er mit Compilerfehler ab.

    struct GlyphCodes
    {
    public:
    	System::Word CODE;
    	System::Word UNICODE; // << [BCC32 Fehler] Vpdffontrecords.hpp(346): E2321 Deklaration deklariert weder ein Tag noch einen Bezeichner
    	System::Word GlyphID;
    	System::Word SerialNumber;
    	bool Hidden;
    };
    

    Es gibt Präprozessorkonstanten namens UNICODE und _UNICODE, die für _TCHAR == wchar_t definiert werden.

    ~PDF schrieb:

    Allerdings stellt sich mir die Frage wieso? Bei anderen Projekte, in denen ich wchar_t unter Optionen nutze musste ich dies nicht einstellen, wieso jetzt hier?

    Vermutlich ist es ein Projekt, das du ursprünglich in einer älteren Version von C++Builder erstellt hast. Für neue Projekte erstellen C++Builder 2009 und aufwärts automatisch eine _tWinMain-Definition, aber in alten Projekten steht in der Regel die alte, lediglich im ANSI-Modus funktionsfähige Definition.


Anmelden zum Antworten