I have a function in a native DLL defined as follows:
#include <string> void SetPath(string path);
I tried to put this in Microsoft’s P/Invoke Interop Assistant, but it chokes on the ‘string’ class (which I think is from MFC?).
I have tried marshaling it as a variety of different types (C# String, char[], byte[]) but every time I either get a NotSupportedException or a Native Assembly Exception (depending on what marshaling I tried).
As anyone ever done Native/Managed Interop where the native string class is used? Is there any way to Marshal this? Am I going to have to write my own Marshaler?
Looks like you’re trying to use the C++ standard library string class. I doubt that will be easy to Marshal. Better to stick with a char * and Marshal as StringBuilder. That’s what I usually do. You’ll have to add a wrapper that generates the C++ string for you.