Funktionen in Klassen und Code Size



  • Hallo!

    Ich hab mal folgende Frage: Ich möchte gern eine Klasse für verschiedene Programme schreiben. Jedes dieser Programme verwendet verschiedene Funktionen aus dieser Klasse aber nicht alle.
    Werden jetzt beim Linken auch die Funktionen mit in das Programm gelinkt welche nicht verwendet werden, sich aber in der Klasse befinden?

    Ich möchte ja exe Dateien die nicht sehr groß sind.

    Wenn jetzt wirklich alle Funktionen in der fertigen Exe Datei sind wie kann ich das verhindern. Immer den nicht benötigten Code ausschneiden ist keine Lösung...

    Ich benutze MSVC++ .Net.

    atzplzw



  • atzplzw schrieb:

    Immer den nicht benötigten Code ausschneiden ist keine Lösung...

    Das könnte man mit bedingter Kompilierung lösen, also mit #define & co.



  • Das bedeutet also, dass alle Funktionen mit aufgenommen werden?

    Das ist schlecht...

    atzplzw



  • Dann arbeite doch mit #define, wie schon angedeutet.

    dann kannst du sowas machen:

    #ifdef _DLL_FUNKTION_FUER_ANZEIGE_
    void CDieKlasse::Male()
    {
    ...
    }
    #endif
    

    Im Header musst du das natürlich auch so machen.

    #ifdef _DLL_FUNKTION_FUER_ANZEIGE_
    void Male();
    #endif
    

    Wenn _DLL_FUNKTION_FUER_ANZEIGE_ nicht in den Projekteigenschaften angegeben wird, gibt es beim Kompilieren diese Funktion nicht. Sie ist einfach nicht da. Klar, im Quelltext ist sie noch, aber sonst nirgends.


Anmelden zum Antworten