Die selben Dateien in mehreren Projekten verwenden



  • Hallo,

    ich habe eine (äußerst primitive) 3D-Grafik-Engine in 2 CPP- und 2 Headerdateien. Jetzt habe ich aber das Problem dass ich die Dateien in mindestens 2 verschiedenen Projekten benötige.
    Ich kann nicht einfach die 2 Dateien "fertig" schreiben, da sie laufend geändert werden.
    Es ist auch nicht möglich, die Dateien in einen seperaten Ordner zu kopieren und dann von jedem Projekt zu verwenden, da es leicht vorkommen kann dass ich diese Dateien bei einem späteren Projekt wieder verändere --> dann lassen sich die alten Sachen nicht mehr kompilieren.
    Kompatibel machen geht auch nicht da ich regelmäßig ganze Klassen komplett umkremple.

    Gibt es da eine Lösung für mich?
    Ich glaube irgendwie, dass ich das Ganze falsch angehe, aber ich weiß auch nicht wie ich das besser machen könnte.

    Tubos



  • Standardisiere das Interface. Dann mach eine Lib draus.

    Bye, TGGC (Der Held lebt!)



  • Im Prinzip mußt du (wie TGGC schon sagt) ein Interface definieren. D.h. du mußt dir gedanken über Klassen und deren Public-Methoden (Interface) machen. Was in den Mthoden und vorallem in den protected und private Methoden passiert, ist den Benutzern dann egal.

    Und das ganze dann natürlich als Librarie verlinken. Dann kannst du deine *.LIB Datei einfach mit den zwei Projekten verlinken.



  • Das klingt sinnvoll!
    Eines der Probleme dabei ist aber, dass ich mich nicht an das Objektorientierte Konzept halte sondern oft direkt auf Variablen zugreife (wegen der Performance).
    Ich werde das wohl so machen müssen dass ich weiterhin direkt auf Variablen zugreifen kann, die Dateien aber trotzdem kompatibel sind.



  • Wegen was? Performance? Du glaubst doch nicht etwa, das das hier langsamer ist als direkter Zugriff?

    class A {
    private:
     int i;
    
    public:
      int getInt();
    };
    
    int A::getInt() {
    return i;
    }
    

    DAS ist nicht langsamer, als wenn i public ist und du direkt i benutzt! Du glaubst doch nicht, das die Compiler heute "dumm" sind? 😮



  • Geht nicht langsamer?
    Bei mir schon, ich habe Visual C++ 6.0 Autorenversion und der Compiler der Autorenversion optimiert nicht.



  • Geht nicht langsamer?
    Bei mir schon, ich habe Visual C++ 6.0 Autorenversion und der Compiler der
    Autorenversion optimiert nicht.

    Schreibe die Member-Funktion einfach als inline, dann geht es auch mit deinem Compiler.


Anmelden zum Antworten