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.OBJEDIT:
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.