Name einer Funktion ändern



  • Ist es in C++ möglich den namen einer Funktion zu ändern?

    Funktion Bernd(){};

    Der Name Bernd soll im späteren verlauf "Ute" heißen !

    Bitte kein Wieso,weshalb,warum!!!



  • Kinda...

    void bernd(int i) {}
    // ...
    std::function <void(int)> ute (&bernd);
    ute(2);
    

    EDIT: oh das ist C++11. Aber die C++ Builder boost version sollte das Equivalent des C++ functional headers schon haben.

    EDIT: Ansonst kann man natürlich auch direkt mit Funktionszeigern arbeiten.



  • Jo
    Das riecht ja schon mal nicht schlecht.
    thx


  • Mod

    Bytekot schrieb:

    Bitte kein Wieso,weshalb,warum!!!

    Wieso kein wieso, weshalb, warum?



  • Ja, warum eigentlich?
    Es kann keinen Sinn geben, den Namen einer Funktion zu ändern.



  • Warum kann es keinen Sinn geben?



  • Bytekot schrieb:

    Warum kann es keinen Sinn geben?

    Namen sind Schall und Rauch.
    Allerdings ist es auch wieder nicht die dümmste Idee Funktionen einen sprechenden Namen zu geben (wie z.B. Ute statt Bernd).


  • Mod

    Bytekot schrieb:

    Warum kann es keinen Sinn geben?

    Oh, wir können uns schon denken, dass du dahinter einen Sinn siehst. Wir wissen bloß aus Erfahrung, dass dies eine typische Frage ist, wenn jemand etwas grundlegend falsch über die Programmiersprache verstanden hat. Und dann kommst du auch noch mit der Klausel, dass du keine Gegenfragen wünscht.

    Deine Frage ist ungefähr so, als würdest du in einem Autoforum fragen, wie du dein Auto komplett luftdicht bekommst. Man kann erkennen, dass hinter der Frage wohl irgendein Sinn steht, aber man sieht auch sofort, dass dahinter irgendein Vorhaben steht, von dem man besser abraten sollte.

    Außerdem liegt in allen Fällen wohl ein XY-Problem vor.



  • SeppJ schrieb:

    Deine Frage ist ungefähr so, als würdest du in einem Autoforum fragen, wie du dein Auto komplett luftdicht bekommst.

    Erstmal Schiebedach schließen. :p

    UltraEdit: Replace in Files -> Replace Bernd with Ute. Nur son Tip.



  • Bytekot schrieb:

    Ist es in C++ möglich den namen einer Funktion zu ändern?
    Funktion Bernd(){};
    Der Name Bernd soll im späteren verlauf "Ute" heißen !

    Also ich hab da ganz alten Code, der immer mit delay/Bernd warten will, aber Windows liefert nur die Sleep/Ute mit.

    void delay(int millisekunden)
    {
        Sleep(millisekunden);
    }
    


  • Schon mal was von "reverse engineering" gehört ?
    Die Programme die ich hier vor mir liegen habe, haben das nämlich nicht!



  • Bytekot schrieb:

    Schon mal was von "reverse engineering" gehört ?
    Die Programme die ich hier vor mir liegen habe, haben das nämlich nicht!

    Volkard beantwortet die Frage.
    "Reverse engineering" gehört in den Bereich "wieso, weshalb, warum".
    Danke. Gruß.



  • Google mal obfuscator 😉



  • Und wie mache ich das in C++ ?



  • In C++ machen Funktionsnamen nur im Quelltext Sinn. Im Executable möglicherweise noch als Debugsymbole, aber generell gibt es im Executable keine Funktionsnamen mehr, über die man Zugriff auf ausführbaren Code hat.

    Also lautet die Frage: Kann ich in C++ Quelltext den Namen einer Funktion ändern?
    => Ja, kannst du, einfach mit einem Texteditor den Namen ändern und an allen aufrufenden Stellen ebenfalls.
    => Ja, per Find & Replace alle Vorkommen von "Bernd" nach "Ute" ändern
    => Ja, wenn deine IDE Refactoring anbietet kannst du das darüber erledigen

    In jedem Fall musst du danach den Quelltext neu übersetzen.

    Entweder war das jetzt am Thema vorbei oder nicht hilfreich 😃

    Edit:
    Einen Obfuscator braucht man für C++ nicht, das macht der Compiler für dich.



  • Die Sitzung ist hiermit beendet!


Log in to reply