Как при использовании DllImport передать строку - C#
Формулировка задачи:
Доброго времени суток. Пытаюсь использовать Сам метод на Си:
Что интересно в методах которые принимают
libshout.dll
. При указании параметров методу возникает ошибка. Неправильно работаю со строками. Как передатьstring
в метод который принимаетchar *
[DllImport("libshout-3.dll", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)] private static extern int shout_set_host(long instance, string host);
int shout_set_host(shout_t *self, const char *host)
[DllImport("libshout-3.dll" , CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)] internal static extern IntPtr shout_get_error(long instance); //вот так преобразовываем в строку return Marshal.PtrToStringAnsi(shout_get_error(this.instance))
int
всё проходит нормально. Значит явно с преобразованием строк надо что-то делать . Не пойму как.Решение задачи: «Как при использовании DllImport передать строку»
textual
Листинг программы
[DllImport("libshout-3.dll", CharSet = CharSet.Ansi, ExactSpelling=true, CallingConvention = CallingConvention.Cdecl)] private static extern int shout_set_host(IntPtr instance, string host);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д