Wie könnte ich ausführbaren Code mit einer dynamischen Bibliothek verknüpfen?C++

Programme in C++. Entwicklerforum
Anonymous
 Wie könnte ich ausführbaren Code mit einer dynamischen Bibliothek verknüpfen?

Post by Anonymous »

Ich habe eine plattformübergreifende dynamische Bibliothek und eine ausführbare Datei.
In der ausführbaren Datei habe ich eine Struktur mit implementierter statischer Funktion darin.
In der dynamischen Bibliothek habe ich die gleiche Definition von Struktur und statischer Funktion darin. Alle Definitionen sind extern C.
  • Die Kompilierung von .so mit gcc funktioniert einwandfrei.
  • Die Kompilierung von DLL mit ms vstudio ergibt „unaufgelöste externe“ für statische Funktionen, selbst mit __declspec(dllimport).
Das Ziel besteht darin, den Code darin zu verknüpfen ausführbare Datei in dynamische Bibliothek umwandeln, sodass die Bibliothek zur Laufzeit ausführbaren Code aufrufen kann. Ich verstehe, dass es bei solch ungewöhnlichen Verknüpfungen einige Fallstricke gibt, aber ich sehe keine andere Möglichkeit, dies zu tun.
Die Fragen lauten:
  • Warum schlägt der Windows-Linker fehl?
  • Warum funktioniert die Verknüpfung mit gcc einwandfrei?
  • Was sind Alternativen zu einer solchen Verknüpfung? Vielleicht erwarte oder mache ich etwas völlig Falsches und es gibt viel elegantere Möglichkeiten, Code aus einer ausführbaren Datei aus einer dynamisch verknüpften Bibliothek zur Laufzeit aufzurufen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post