kostenloser Webspace werbefrei: lima-city


Makro funktionsname

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    nomis

    nomis hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hallo nomis,

    der Standardweg für sowas wäre:
    #define TFN(func_name) func_name##A
  4. 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
  5. 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:
    /* aus WinUser.h: */
    #ifdef UNICODE
    #define MessageBox  MessageBoxW
    #else
    #define MessageBox  MessageBoxA
    #endif // !UNICODE
    Im Code schreibt man dann
    MessageBox(hwnd, _T("Text foobar!"), _T("Hallo"), MB_OK|MB_ICONINFORMATION);
    Dieser Code kann sowohl für Multibyte als auch für Unicode kompiliert werden.
  6. Autor dieses Themas

    nomis

    nomis hat kostenlosen Webspace.

    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
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!