A C# DLL is a managed assembly and does not export its functionality via classic PE exports. Your options:
- Use C++/CLI mixed mode to wrap the C#. You can then export functions in unmanaged mode in the usual way.
- Use Robert Giesecke's UnmanagedExports. This is perhaps more convenient than a C++/CLI wrapper.
- Expose the managed functionality as a COM object.
Once you get as far as choosing one of these options you will have to deal with your misuse of the string
data type. That's a private Delphi data type that is not valid for interop. For the simple example in the question PWideChar
would suffice.