I tried different things but i’m getting mad with Interop.
(here the word string is not referred to a variabile type but “a collection of char”):
I have an unmanaged C++ function, defined in a dll, that i’m trying to access from C#, this function has a string parameter and a string return value like this:
string myFunction(string inputString)
{
}
What should be string in C++ side? and C# one? and what parameters need DllImport for this?
What I’ve found to work best is to be more explicit about what’s going on here. Having a string as return type is probably not recommended in this situation.
A common approach is to have the C++ side be passed the buffer and buffer size. If it’s not big enough for what GetString has to put in it, the bufferSize variable is modified to indicate what an appropriate size would be. The calling program (C#) would then increase the size of the buffer to the appropriate size.
If this is your exported dll function (C++):
Matching C# would be the following:
So to use this in C# you would then do something like the following: