Здравствуйте, gazizik, Вы писали:
<...>
G>Исключения перехватываются стандартным методом
G>try
G>{
G> // todo smth
G>}
G>catch (DWORD derr)
G>{
G> log ("dword error");
G>}
G>catch (...)
G>{
G> log ("Unexpected error");
G>}
G>Так делается и в сервисе, и в библиотеке. Т.е. если бы исключение перехватилось, об этом бы шла запись в лог.
G>Смущает то, что винтузовое окно об ошибке не выскакивает ...
G>К сожалению, сорсов одной из библиотек у меня нет. Возможно, проблема конкретно в ней. Но если бы в ней проскачило исключение, оно бы поймалось catch (...). Ведь так? Или для этого обязательно нужно пользоваться __try __except?
А выделенной строчке поток не создается? Может он все и валит? Дебагером не пробовали коннектиться к сервису и потом на call stack глянуть и на список потоков или написать обработчик который будет dump файл делать и потом его проанализировать? Если попробовать порассуждать то AddRef просто увеличивает counter (это конечно не факт

но не будем рассматривать клинические случаи ) т.е упасть оно может когда класс который реализует интерфейс не создан или уже удален.