Deine Aufgabenstellung ist gar nicht so einfach, wie das auf den 1. Blick aussieht.
Ein "normale"
DLL kann nur ganz normale Funktionen/Prozeduren enthalten.
Klassen und Objekte gibt es erst mal nicht (zumindest, wenn Sprachübergreifend programmiert werden muss).
Also musst du den Kern, die Essenz deiner Anwendung rausziehen und als Funktionen in die
DLL bringen.
Wenn die
DLL Konfigurationsdaten benötigt, müssen diese aus der Registry oder einer INI-Datei gelesen werden.
Oder die Anwendung, die die
DLL öffnet, muss diese Daten bereitstellen.
Auf diese Art werden keine Formulare innerhalb der
DLL benötigt.
Deine Anwendung scheint ja über 20 Formulare zu enthalten.
Wahrscheinlich ist die
eigentliche Aufgabe, deine Anwendung von Aussen programmierbar zu machen.
Dies nennt man im MS Jargon
Automatisierung.
Wenn deine Anwendung automatisiert werden soll, dann geht die Idee mit der
DLL in die ganz falsche Richtung.