Рассмотрим следующий собственный код (который нельзя изменить по причинам):
#include <cstdio>
#include <exception>
extern "C" {
__declspec(dllexport) void terminate_me(void) {
puts("hello from C");
std::terminate();
puts("bb from C");
}
}
Который вызывается из C # (который мы можем изменить любым удобным для нас способом)
using System.Runtime.InteropServices;
class Program
{
[DllImport("Project1.dll")]
static extern void terminate_me();
static void Main(string[] args)
{
terminate_me();
}
}
Ивот что происходит:
Мои вопросы: можем ли мы аварийно завершить работу приложения, не показывая это окно пользователю? Я имею в виду, что с неуправляемым кодом случилось что-то плохое, просто закройте приложение с кодом ошибки, не показывайте пользователю ничего.
Возможно ли это?