Weil es eben nicht DIE Lösung gibt.
Wie gesagt, entweder man kann was Allgemeines nehmen, dann ist alles fast schon fertig (
DCOM/
COM)
oder du mußt eben alles selber machen (dir die WrapperEXE bauen und das Interface in dein Programm).
Und wie die beiden dann miteinander Reden, da gibt es auch massenhaft Lösungen ... nennt sich allgemein
IPC.
SendMessage (auch WM_COPYDATA oder nicht), MMF,
TCP, Pipes oder sonstwas Höheres, so in Richtung Client/Server ala REST,
SOAP, DataSnap bzw. RADServer, mORMot uvm.
Man kann die Funktionen im Interface genauso bauen, wie das was die
DLL exportiert, und kapselt darin dan was wirklich die Verbindung macht
oder man kann es auch anders machen und das die Verbindung machende direkt verwenden
oder ...
(Ersteres hat den Vorteil, dass es für das nutzenden Programm egal ist, was wie dazwischen passiert, da die Funktionsaufrufe unverändert bleiben, also so als ob die
DLL direkt benutzt würde)