Genau wegen deiner Problem habe ich eine Wrapper.dll in C# geschrieben die man einfach als Verweis in C# einbinden kann.
Diese regelt dann die Kommunikation zwischen der Delphi.dll -> Wrapper.dll - Anwendung in C#.
Somit konnte ich auf beide Varianten des Codes Einfluß nehmen (UnmanagedType und managedType)
Zudem habe ich alle Strings aus Delphi als PWideChar übergeben. Nicht als PChar !
Delphi..
Pluginfile : PWideChar;
C# Wrapper
Code:
[MarshalAs(UnmanagedType.BStr)]
public string PluginFile = string.Empty;
Nur so als Anregung.
Zitat:
Achte darauf, das du auch einen
Unicode-String in Form von PWideChars zurückgibst, das erspart dir weitere Kopfschmerzen: In C# ist jeder String automatisch
Unicode.
https://im-coder.com/wie-verwenden-v...-typ-in-c.html
OK bin raus