Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

1

07.04.2004, 06:30

MAKROS and "Strings" anhängen

Hallo,

gibt es eine Möglichkeit etwa folgendes zu machen

Quellcode

1
2
3
...#define DIRECTORY "C:\\DATEN\\"
...GetTexture(DIRECTORY + "wand.bmp");
....


also ich meine ein Makro direkt an einen String zu hängen oder davor ohne lästiges sprintf oder so, das MAKRO wird ja beim compiliren direkt eingesetzt.
Damit ich nicht immer bei verzeichnisswechsel das komplette projekt durchsuchen und ändern muss, aber gleichzeitig auch nicht noch extra befehle aufrufen muss, die dann wieder Laufzeit kosten, obwohl das verzeichnis beim kopilieren ja schon feststeht.

Mind

Treue Seele

  • Private Nachricht senden

2

07.04.2004, 09:08

wenn dann gehts nur so wenn dus mit marco machen willst

#define DIRECTORY(args) ("c:\\data\\" #args )
GetTexture(DIRECTORY (wand.bmp));

ansonsten musst anstatt #define eine String Klasse nehmen mit + operator. const MyString DIRECTORY = "c:\\data\\" dann kannst dus auch so hinschreiben GetTexture(DIRECTORY + "wand.bmp");

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

3

07.04.2004, 09:50

also mit Makros ist oft nicht zu spassen wenn man damit nicht richtig umgehen kann, benutz lieber eine inline funktion oder eine normale.

Anonymous

unregistriert

4

07.04.2004, 14:31

thxs

Zitat von »"Mind"«

#define DIRECTORY(args) ("c:\\data\\" #args )
GetTexture(DIRECTORY (wand.bmp));


SUPI ! Danke genau so wollte ichs haben,
hätte ich auch selber drauf kommen können

NoName

Treue Seele

Beiträge: 118

Beruf: Student

  • Private Nachricht senden

5

07.04.2004, 17:58

Warum nicht so:

Quellcode

1
2
#define DIRECTORY "c:\\data\\"
GetTexture(DIRECTORY "wand.bmp");

Anonymous

unregistriert

6

09.04.2004, 01:09

Danke nochmal

Zitat von »"NoName"«

Warum nicht so:

Quellcode

1
2
#define DIRECTORY "c:\\data\\"
GetTexture(DIRECTORY "wand.bmp");


Ja danke nochmal,
hat mir echt geholfen

7

09.04.2004, 04:11

Zitat von »"NoName"«

Warum nicht so:

Quellcode

1
2
#define DIRECTORY "c:\\data\\"
GetTexture(DIRECTORY "wand.bmp");

Ist zwar möglich, aber kann eventl. verwirrung stifften. Die Methode von Mind ist besser und sieht auch besser aus.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Anonymous

unregistriert

8

09.04.2004, 16:27

Zitat von »"DragonMaster"«

Zitat von »"NoName"«

Warum nicht so:

Quellcode

1
2
#define DIRECTORY "c:\\data\\"
GetTexture(DIRECTORY "wand.bmp");

Ist zwar möglich, aber kann eventl. verwirrung stifften. Die Methode von Mind ist besser und sieht auch besser aus.


allerdings müsste man dann für pre und postfix schreiben :

Quellcode

1
post( pre("wand.bmp") )


sieht doch das

Quellcode

1
PRE "wand.bmp" POST


für mich schon besser aus....


naja, so findet halt jeder andere sachen übersichtlicher....

mfg
FAB

9

10.04.2004, 15:06

Zumal ich dafür eh keine #define Anweisungen benutzen würde, sondern inline Funktionen und echte Konstanten. Dann hat man auch gleich die Fehlerprüfungen dabei.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Anonymous

unregistriert

10

10.04.2004, 19:07

also ich benutzte das makro wie folgt :

Quellcode

1
2
3
4
5
6
7
#ifdef _DEBUG
    #define ZIP_PRE "Data\\"
    #define ZIP_NAME "" 
#else
    #define ZIP_PRE "!"
    #define ZIP_NAME "@Game.dat#Passwort"
#endif


(natürlich anstatt "Passwort" das codierte Passwort)

und das finde ich besser mit Makros, weil wie gesagt der Pfad ja schon beim Compilieren feststeht,
eine constante braucht speicherplatz
und eine funktion braucht zumindest rechenzeit.

deswegen halte ich das in diesem speziellen Fall für besser

und fehlerprüfung kann man ja immer noch machen

Werbeanzeige