So verwenden Sie im selben Code zwei verschiedene Bibliotheken mit genau denselben DeklarationenC++

Programme in C++. Entwicklerforum
Anonymous
 So verwenden Sie im selben Code zwei verschiedene Bibliotheken mit genau denselben Deklarationen

Post by Anonymous »

Ich habe zwei numerische Mathematikbibliotheken, die durch DLLs (ich arbeite unter Windows) und Header-Dateien bereitgestellt werden. (Ich kann die Header nicht ändern, und es gibt sowieso Dutzende davon. Ich habe auch keinen Zugriff auf einen Code, den ich kompilieren könnte, um die DLLs zu erhalten.)
Die Bibliotheken sind im folgenden Sinne gleich: Sie haben beide keinen Namespace (außer dem globalen) und alle Deklarationen sind gleich: Wenn sich eine Funktion in einer Bibliothek befindet, ist sie auch in der anderen mit derselben Signatur und demselben Rückgabetyp, derselben Konstanz oder anderen „Qualifizierern“ oder allem enthaltenen enthalten -- Exportieren zum Beispiel -- Speicherlayout für Rückgabeobjekte usw., dasselbe für Klassen, Strukturen, Aufzählungen, Variablen usw. usw. (Man könnte sich zum Beispiel vorstellen, dass beide Bibliotheken nur unterschiedliche Versionen derselben Bibliothek mit nur internen Unterschieden sind, auch wenn dies nicht der Fall ist.)
Bisher habe ich diese Bibliotheken aus Legacy-Gründen in verschiedenen Visual Studio-Lösungen verwendet, aber jetzt muss ich beide Bibliotheken in derselben Datei verwenden. (Es gibt eine Funktion f mit besserer Leistung in einer Bibliothek und eine andere Funktion g mit besserer Leistung in der anderen Bibliothek und ich muss f und g verwenden, sagen wir, in der Definition einer Funktion, die ich umsetze.)
Natürlich, wenn ich im Code ein #include „headerfromlib1.h“ gefolgt von #include „headerfromlib2.h“ mache, habe ich es sofort Konflikte.
Ich kann mir nicht vorstellen, dass es keine Lösung für mein Problem gibt, aber bisher sehe ich keine. (Ich würde eine betriebssystemunabhängige Lösung bevorzugen, da ich überhaupt kein Experte in der C++-Windows-„Schicht“ bin, selbst wenn es nötig wäre, hätte ich nichts dagegen, sie zu verwenden.)

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post