Я пытаюсь вызвать DllImport для следующей функции Alsa (из документации :
#define snd_seq_client_info_alloca( ptr ) __snd_alloca(ptr, snd_seq_client_info)
выделить контейнер snd_seq_client_info_t в стеке
Вот реализация, которую я нашел в C ++ при чтении кода приложения , аналогичного тому, что я хочу выполнить в Mono:
snd_seq_client_info_t* cinfo;
snd_seq_client_info_alloca(&cinfo);
И вот что у меня естьпока, но это не работает:
[DllImport(libasound.so.2)]
private static extern void snd_seq_client_info_alloca(out IntPtr ptr);
internal static void MyFunction ()
{
IntPtr clientInfo = IntPtr.Zero;
snd_seq_client_info_alloca(out clientInfo);
// and then some more ...
}
Но я получаю следующее исключение:
System.EntryPointNotFoundException: snd_seq_client_info_alloca
at (wrapper managed-to-native)
MonoMultiJack.ConnectionWrapper.Alsa.LibAsoundWrapper:snd_seq_client_info_alloca (intptr&)