На память (особенно если трюки с char* не принесли должного результата):
С++ dll :
extern "C" __declspec(dllexport) void __stdcall getLongString(char str[], int str_length)
{
strncpy(str,"long long string",str_length);
result[str_length-1]='\0';
}
C# app :
[DllImport(“c++_dll_name”, CharSet = CharSet.None)]
public static extern void getLongString(StringBuilder str, int str_length);
public static string get_long_string()
{
StringBuilder sb = new StringBuilder(260);
getLongString(sb,sb.Capacity);
return sb.ToString();
}
Гуд лак!