Мое приложение представляет собой смесь кода C # и C ++.Модуль запуска, написанный на C #, загружается во время фазы инициализации модуля C ++ через механизм COM (объектная модель компонентов).Все работало правильно, пока я не решил добавить в C # часть службы wcf.Все вызовы службы wcf направляются в код C ++ с использованием COM.После добавления некоторых новых методов я заметил утечки памяти в окне вывода.Поэтому я добавил точку останова в дескриптор класса C ++, как видно на скриншоте.С этого момента странные вещи начали происходить.Когда программа достигает точки останова, она неожиданно падает.Первое, что странно, это то, что когда я запускаю программу без установленной точки останова, она любезно завершается.Вторая странная вещь заключается в том, что программа аварийно завершает работу, как если бы она работала без отладчика.После нажатия на кнопку «Открыть в отладчике» (или что-то вроде этого) я получаю сообщение об ошибке: «Программа уже открыта в отладчике».Нет сообщения в окне вывода, которое могло бы указать мне на источник ошибки, нет подозрительного кода.При добавлении окна сообщения в начало деструктора оно отображается на долю секунды, а затем закрывается все приложение (без добавления возможности пользователя читать то, что отображается в окне сообщения).Отчаянно ища любую подсказку.
PS Проблемы возникают только тогда, когда метод wcf был вызван хотя бы один раз.Не зависит, был ли поток программы в этом конкретном вызове направлен на уровень C ++ или нет.