amiga-news DEUTSCHE VERSION
.
Links| Forums| Comments| Report news
.
Chat| Polls| Newsticker| Archive
.

amiga-news.de Forum > Programmierung > Ersatz für TEXT()-Makro und weitere? [ - Search - New posts - Register - Login - ]

-1- [ - Post reply - ]

2010-12-07, 16:14 h

Reth
Posts: 1858
User
Hi nochmal,

portiere immer noch an dem SDL-Source von GigaLoMania herum und versuche das Ganze so codeerhaltend wie möglich zu machen.

Allerdings gibt es unter Windows (und wohl auch unter Linux, wenn der Autor den Code damit compilieren konnte) Makros, die u.a. die Behandlung von Unicode in Strings vornehmen. Ein Beispiel ist hier beschrieben :
C code:
#ifdef UNICODE
#define TEXT(t) L##t
#define _T(t) L##t
#define T(t) L##t
#else
#define TEXT(t) t
#define _T(t) t
#define T(t) t
#endif


Habe mal alles im AOS4-Verzeichnis durchsucht, bin aber noch nicht über etwas vergleichbares gestolpert. Gibt es für AmigaOS bereits ähnliche Makros? (Habe mir mit defines von String-Symbolen abgeholfen, ohne umschließendes TEXT()-Makro.)

Ciao

[ - Answer - Quote - Direct link - ]

2010-12-07, 16:32 h

thomas
Posts: 7717
User

Warum nimmst du die Definition nicht einfach so wie sie da steht. Das Makro macht ja nichts anderes als im Falle von Unicode ein L vor den String zu setzen und ohne Unicode eben nicht. Das "behandelt" nichts, es sagt dem Compiler nur, daß der String ein Unicode-String ist, wenn das Programm im Unicode-Modus umgewandelt wird. Soweit ich weiß, gibt es bei AmigaOS (noch) keinen Unicode-Modus, dementsprechend kommt die Variante des Makros im #else-Fall zum Zuge, das die Textkonstante einfach unverändert übernimmt.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Answer - Quote - Direct link - ]

2010-12-07, 17:03 h

Reth
Posts: 1858
User
@thomas:
Wäre auch meine Lösung gewesen. Allerdings bin ich gestern über ne Website gestolpert, auf der von der Nutzung dieses Makros abgeraten wurde!

Für die Kompatibilität werd ich es dann in den Source einbauen!

Ciao

[ - Answer - Quote - Direct link - ]

2010-12-07, 17:20 h

Thore
Posts: 2266
User
Brauchst du da unbedingt Unicode? Wenn nein, lass es weg und mach alles auf ANSI

[ - Answer - Quote - Direct link - ]

2010-12-08, 12:00 h

Holger
Posts: 8116
User
Zitat:
Original von Reth:
@thomas:
Wäre auch meine Lösung gewesen. Allerdings bin ich gestern über ne Website gestolpert, auf der von der Nutzung dieses Makros abgeraten wurde!

Gab es auch eine Begründung?
Ansonsten kannst Du zu jedem Thema mindestens je eine Website finden, die behauptet, dass das ganz schlecht, bzw. ganz toll ist.

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Answer - Quote - Direct link - ]

2010-12-08, 12:42 h

Yvan
Posts: 332
User
Im Gegensatz zu C sind Makros nicht standardisiert. Das kann zu Portabilitätsproblemen führen. Nachzulesen im C Book Kap 7.1 http://publications.gbdirect.co.uk/c_book/chapter7/effect_of_the_standard.html

[ - Answer - Quote - Direct link - ]

2010-12-08, 16:31 h

Holger
Posts: 8116
User
Zitat:
Original von Yvan:
Im Gegensatz zu C sind Makros nicht standardisiert. Das kann zu Portabilitätsproblemen führen. Nachzulesen im C Book Kap 7.1 http://publications.gbdirect.co.uk/c_book/chapter7/effect_of_the_standard.html

Nun ja, vielleicht hätten die Autoren, als sie 1991 die 2nd Edition produziert haben, auch dieses Kapitel etwas aktualisieren sollen. Makros sind sehr wohl standardisiert, das konnte man vor 1989/1990 vielleicht noch nicht wissen, aber 1991 war der Standard fix und anno 2010 dürfte es wohl keinen C-Compiler mehr geben, der mit diesem zwanzig Jahre alten Standard Probleme hat.

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Answer - Quote - Direct link - ]


-1- [ - Post reply - ]


amiga-news.de Forum > Programmierung > Ersatz für TEXT()-Makro und weitere? [ - Search - New posts - Register - Login - ]


.
Masthead | Privacy policy | Netiquette | Advertising | Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved.
.