ОРИГИНАЛЬНЫЙ ВОПРОС
Наше приложение использует CSocket, который требует, чтобы насос сообщений работал, чтобы он работал. В настоящее время нецелесообразно переходить на другую реализацию сокета, хотя именно на этом мы хотели бы закончить в какой-то момент.
Приложение находится на Visual C ++ (НЕ управляемое).
В настоящее время мы запускаем C ++ DLL с помощью с помощью средства запуска службы C # .NET, которое запускает поток с помощью Application.Run, чтобы запустить насос сообщений, а затем использует DllImport для запуска метода запуска в нашей DLL.
С этим возникает множество проблем, большинство из которых нажатие из которых состоит в том, что если DLL выйдет из строя по какой-либо причине, мы не получим файл дампа!
В результате мы переключаемся на средство запуска службы C ++, и пока мы в порядке с аспектом службы из-за этого мы немного озадачены тем, как запустить насос сообщений.
Я посмотрел в Google и несколько вопросов здесь, но часть моей проблемы - отсутствие базовых знаний C ++, поэтому извиняюсь, если это обман вопрос, если бы кто-то мог указать мне в правильном направлении, я был бы очень признателен.
Большое спасибо заранее Мэтт Педдлесден
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ
Текущая служба C #, которую мы пытаемся заменить, по существу делает следующее:
public void PumpThread()
{
DLLStart();
Application.Run();
}
protected override void OnStart(string[] args)
{
try
{
Thread pumpThread = new Thread(new ThreadStart(PumpThread));
pumpThread.IsBackground = true;
pumpThread.Start();
}
catch (DllNotFoundException dnfe)
{
}
catch (Exception e)
{
}
}
protected override void OnStop()
{
try
{
DLLStop();
}
catch (DllNotFoundException dnfe)
{
}
catch (Exception e)
{
}
}
По сути, мы просто пытаемся заменить указанную выше службу C # .NET для Windows эквивалентом на C ++, чтобы наш код работает полностью в неуправляемом мире, вместо того, чтобы излишне путать это с 5 строками управляемого кода.
DLLStart () и DLLStop () - две функции, которые импортируются из нашей C + Unmanaged DLL, которые фактически запускают и останавливают систему.
] Я не совсем уверен, что вид проекта Visual C ++ это должно быть, чтобы иметь возможность делать что-нибудь с помпой, если честно.
Надеюсь, эти дополнительные данные будут полезны.