In the main line of Microsoft, this uses COM interaction. There is another option, sometimes called "Reverse P / Invoke", there is an interesting blog post here and a few more here
In addition, if you have Delphi.NET (now non-existent), this language allows you to export static methods, for example, any DLL function, then you can call the Delphi.NET assembly like a regular native Dll.