2013-11-11 2 views
0

Я работаю над проектом, использующим freeswitch как встроенный в другое приложение. Я работаю над приложением C# /. Net.Инициализация ядра с использованием встроенного Freeswitch

Я пробовал что-то очень простое, для того чтобы инициализировать ядро, в основной функции простого тестового проекта. Я добавил freeswitch.managed.dll ссылку на проект, и я только что ввели эти 3 команды, как показано на FreeSwitch вики,

String err = ""; 
const uint flags = (uint)(switch_core_flag_enum_t.SCF_USE_SQL | switch_core_flag_enum_t.SCF_USE_AUTO_NAT); 
freeswitch.switch_core_set_globals(); 
freeswitch.switch_core_init(flags, switch_bool_t.SWITCH_FALSE, ref err);  
freeswitch.switch_core_init_and_modload(flags, switch_bool_t.SWITCH_FALSE, ref err);  

предваряется и затем «прием» и «ядро» inited консольных сообщений , Теперь, когда я пытаюсь построить все это, он просто падает. Кажется, функция switch_core_set_globals работает нормально. но остальные 2 просто не сработают.

«необработанная система. AccessViolationException попытка чтения или записи в защищенной памяти»

Это заставляет меня задаться вопросом, потому что я был в состоянии успешно построить проект, FSClient софтфон использует встроенные которым FreeSWITCH. и никакого крушения, ничего.

Так что я хотел знать, есть ли конкретная конфигурация или какие-либо дополнительные манипуляции с настройками, которые необходимо использовать, чтобы иметь возможность правильно инициализировать ядро ​​fs;

ответ

0

Привет, ребята, я думаю, что, наконец, понял это! Оказывается, это проблема конфигурации/платформы. Я пытался запустить проект на платформе x64. Я попытался запустить аналогичный проект на процессоре x86, и он сработал. Итак, вернемся к своему компьютеру, я создал новое простое консольное приложение, добавил freeswitch.managed dll и изменил целевую платформу на x86 (вместо ANY CPU). Я также изменил целевую структуру (4.0-клиентский профиль или 4.0 вместо 4.5). Теперь, когда я пытаюсь скомпилировать код, о котором я упоминал ранее, есть только предупреждающее сообщение, но все работает отлично. Надеюсь, это поможет кому-то!

P.S. Не забудьте поместить все файлы dll и conf в файл конфигурации freeswitch (freeswitch.xml) в папку bin/debug.

+0

Привет, я пытался встроить freeswitch в приложение C#. Я не мог заставить его работать на 64-битной платформе. Он сбой на этой строке => switch_status_t result = freeswitch.switch_core_init_and_modload (флаги, switch_bool_t.SWITCH_FALSE, ref err); Я не хочу развиваться в x86. Не могли бы вы найти решение для 64-битной платформы? благодаря – Tezcan

Смежные вопросы