Nein. Es ist nicht möglich. Eine DLL ist ein Modul mit einem PE32-Header mit allen Informationen zum Laden in einen Prozess. Eine LIB ist nur ein Archiv von OBJ-Dateien.
Und obwohl andere sagen, es sei einfach, eine DLL darum zu wickeln, kann dies recht schwierig sein. Der Grund dafür ist, dass eine .LIB nicht nur einige Abhängigkeiten auflöst, sondern auch ungelöste externe Verweise haben kann.
Solange diese ungelösten externen Verweise nur die Laufzeitbibliothek des Compilers erfordern, könnte das Einwickeln in eine DLL funktionieren. Sie können dies überprüfen, wenn Sie ein DLL-Projekt erstellen, wahrscheinlich mit einem minimalen C++-Quellcode, und versuchen zu kompilieren. Dann sehen Sie, ob weitere externe Verweise mit anderen Bibliotheken aufgelöst werden müssen.
Ein wichtiges Problem könnte bei der Speicherverwaltung auftreten. Wenn Sie statisch mit einer .LIB verlinken, verwenden Sie alle die gleichen Definitionen. Wenn Ihre Bibliothek eine eigene Implementierung mitbringt, sagen wir mal von malloc-ähnlichen Funktionen, wird dies nicht mit Ihrer Anwendung verlinkt, solange Sie all diese Symbole zur EXPORT-Liste hinzufügen. Das Finden der Liste der öffentlichen Symbole, die in die EXPORT-Tabelle aufgenommen werden sollen, kann sehr mühsam sein.