Also: Plug-ins im originalen Sinne gibt’s leider nicht standardmäßig. Ganz ähnlich aber sind ActiveX, COM/DCOM und auch API(-Calls).
ActiveX: Können DLLs ohne grafische Oberfläche, DLLs mit graf. Oberfl. und EXEs mit graf. Oberfl. sein. Z.B. UserControls können einerseits direkt in VB als Modul eingebunden oder extra als ein ActiceX-Control-Projekt gestaltet werden. Oder auch per Projekt/References oder per Code über CreateObject(„datei.dll“).
Diese ActiveX-Componentes werden mit Hilfe von COM/DCOM angebsprochen, wobei diese nicht dezentral auf jedem Client installiert werden müssen.
API-Calls sind ähnlich, funktionieren aber ohne COM/DCOM. Ein „einfaches“ Declare einer Funktion oder Methode global im Projekt, und die DLL ist verfügbar. Ist aber eine kompliziert Methode, da nicht wirklich bekannt ist (außer in der Doku), wie die Aufrufe genau auszusehen haben.
Aber Deine Frage - glaube ich - zielt eher darauf hin, wie Du sinnvoll Dein Programm erweitern kannst, ohne die Basis ändern zu müssen. In diesem Fall würde ich dir zu ActiveX-Komponenten raten - eines für die PlugIn-Schnittstelle (plugbase.dll) und andere für die PlugIns direkt. Die plugbase.dll deshalb, da ja das Hauptprogramm eingentlich nix mit neuen PlugIns anfangen kann - mal angenommen. Jedesmal, wenn Du nun ein neues PlugIn auslieferst, legst Du die plugbase.dll hinzu, welche alle PlugIns kennt.
Wenn Du mir noch sagst, welche Funktionen das Hauptprogramm hat und welche Du via PlugIns erweitern willst, kann ich Dir event. weitere Hints geben.
LG, Stefan.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]