Makro funktionsname
lima-city → Forum → Programmiersprachen → C/C++ und D
arbeit
arbeiten
array
aufruf
beispiel
buchstabe
code
dank
doppelten raute
entschuldigung
helfen
hilfe
idiom
jemand
machen
problem
programm
projekt
stil
tun
-
Hallo,
es würde mir sehr viel Arbeit ersparen, wenn ich ein Makro hätte, bei dem ein Aufruf
TFN(myFunction)
vom Preprocessor übersetzt wird zu
myFunctionA
Es soll also an einen gegebenen Funktionsnamen einen Buchstaben dranhängen..
Leider schaff ich das nicht ganz, hat da evtl. jemand von euch eine Lösung?
Ohh, entschuldigung, jetzt habe ich dochnoch eine Lösung gefunden. Falls jemand einmal ein ähnliches Problem haben sollte, hier die Lösung:
#define REPEAT_CODE(code) code #define D_TFN(fnName) REPEAT_CODE(fnName)A
Von mir aus kann der Thread gelöscht werden...
Beitrag zuletzt geändert: 10.5.2011 12:41:09 von nomis -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
darkpandemic schrieb:
Hallo nomis,
der Standardweg für sowas wäre:
#define TFN(func_name) func_name##A
Ist das denn überhaupt ein gängiges Idiom? Ich denke dynamische Funktionsnamen sind schlechter Stil. Da sollte man besser mit einen Array von Funktionspointern arbeiten.
Edit: Typo
Beitrag zuletzt geändert: 10.5.2011 18:27:02 von bladehunter -
Hallo bladehunter,
ich denke mal, dass es immer noch um das Thema Mutlibyte/Unicode in einer DLL mit gleichen Funktionsnamen geht.
Und Microsoft macht das in der API durchgängig so.
Hier nochmal das übliche Beispiel:
Im Code schreibt man dann/* aus WinUser.h: */ #ifdef UNICODE #define MessageBox MessageBoxW #else #define MessageBox MessageBoxA #endif // !UNICODE
Dieser Code kann sowohl für Multibyte als auch für Unicode kompiliert werden.MessageBox(hwnd, _T("Text foobar!"), _T("Hallo"), MB_OK|MB_ICONINFORMATION);
-
ahhh, danke, darcpandemic, das mit der doppelten Raute kannte ich nicht und hatte deswegen immer das Problem, dass ich da ein Leerzeichen oder eine klammer oder so gebraucht habe,...funktionspointer helfen mir in meinem Fall leider wirklich nicht, darcpandemic hat mich durchschaut, es hängt genau mit diesem anderen Thema zusammen, dafür habe ich jetzt nämlich doch noch eine Lösung gefunden (mit Hilfe einer zusätlichen statischen Library und des Preprocessors). Wenn ich mit dem Projekt fertig bin, veröffentliche ich es evtl. auch, weil es wohl vielleicht sogar einmal mein erstes nützliches Programm ist, das es nicht schon vorher gab. Wenn nicht, poste ich evtl. zumindest noch im anderen Thread die Lösung des Problems mit den doppelten Funktionen...
P.S.: Habt ihr eigentlich beruflich was mit c/c++ zu tun? Weil ihr beide immer so professionell klingt und das Problem immer gleich versteht...
Beitrag zuletzt geändert: 10.5.2011 16:32:16 von nomis -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage