Mir geht es im Moment nicht gut, deshalb nur kurz:
Ich verwende das NuGet Paket DllExport und erstelle damit nativ exportierte Funktionen. Die
DLL kann man dann in Delphi einfach mit LoadLibrary laden.
Ich habe darum herum dann ein Framework gebaut, mit dem ich C#-Interfaces generisch aus Delphi heraus abrufen oder umgekehrt in der C#-
DLL Interfaces aus der Delphi-Hostanwendung abrufen kann. Auf diese Weise kann ich auch z.B. direkt generische Listen in beiden Richtungen als Parameter verwenden. Aber für dich reichen ja die nativen Funktionen vermutlich schon.
Nächste Woche kann ich dazu bei Bedarf auch mehr schreiben. Den entsprechenden Quelltext kann ich aber leider nicht zeigen.