Завершающий выход (#) из библиотеки C в C # - PullRequest
1 голос
/ 31 августа 2010

Я использую C # для использования библиотеки C, используя следующий синтаксис:

[DllImport("clib.so") static extern int func(char* foo);

Я хотел бы знать, есть ли способ поймать выход (#)это происходит в коде C, поэтому я могу перезагрузить библиотеку, если произойдет критическая ошибка.

Спасибо!

1 Ответ

3 голосов
/ 31 августа 2010

Я полагаю, что exit () завершит процесс без повторного ввода управляемого кода. Возможно, вы могли бы зарегистрировать функцию, чтобы уведомить вас, когда это произойдет, используя предыдущий вызов atexit () через P / Invoke. Но процесс все равно завершится, если вы вернетесь из этого. Я предполагаю, что возвращение не оставит процесс в неопределенном состоянии. Вам может потребоваться реализовать некоторую форму изоляции процессов и следить за выходом процессов из вашей умирающей библиотеки.

http://msdn.microsoft.com/en-us/library/6wdz5232.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...