How to pass referenced string from c dll to c#
I have problem to pass a referenced string to c#. Below are the code for c dll and c#
c dll code
extern "C" __declspec(dllexport) int test(string &msg)
{
msg = "test";
return 0;
}
c# code
[DllImport("c_dll.dll")]
public static extern int test(ref StringBuilder newMsg);
StringBuilder aaa = new StringBuilder();
aaa.append("");
int a = test(ref aaa);
i can compiled it successfully but whenever I tried to run it, I get this error
Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Please help to indicate which part of the code is wrong. Thank you