Здравствуйте, kov_serg, Вы писали:
_>...
Можно попроще
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate void Callback([MarshalAs(UnmanagedType.LPUTF8Str)] string str);
[DllImport("lib", CallingConvention = CallingConvention.Cdecl)]
public static extern void Func(Callback dataReceiver);
using Callback = void (*)(const char* str);
void Func(Callback dataReceiver)
{
dataReceiver(toUtf8(...));
}
Тут главное сделать удобные врапперы над всем этим, дабы каждый вызов функции не превращался в писанину на несколько строк