Подтвердить что ты не робот

Как перейти в неуправляемую библиотеку С++ из моего кода С++/CLI

У меня есть следующие три проекта в моем решении: 1. Библиотека С# 2. Управляемый код С++/CLI 3. Неуправляемый код С++

Я проверил "Включить неуправляемую отладку кода" в моем проекте С# и построил оба проекта на С++ в Debug/Win32. Однако я не могу войти в неуправляемый код - когда я F11 при вызове любого неуправляемого метода, он показывает мне, что какой-то случайный/неправильный код завершается.

Поскольку мои модульные тесты проходят, я знаю, что мой неуправляемый код выполняет.

Что мне не хватает?

4b9b3361

Ответ 1

Когда у меня возникла эта проблема, это произошло из одной из следующих вещей:

1) Включить неуправляемую отладку кода, не отмеченную. Вы уже исправили это.

2) Построил EXE как x64 или любой CPU (говорят, что x64 работает, но это не так). Я думаю, вы уже исправили это.

3) Включенный "только мой код" иногда вызывает проблемы с неуправляемой отладкой кода ( "Инструменты", "Параметры", "Отладчик", "Только мой код" )

4) Неправильные параметры отладки в настройках проекта С++

5) Отсутствующие, поврежденные или несогласованные файлы PDB. Вы можете проверить это, пытаясь установить контрольную точку в коде С++ во время работы в отладчике. Если точка останова превращается в полый круг, что-то не так с вашей информацией об отладке. Также проверяйте окно вывода при запуске в режиме отладки - он должен сказать вам, чьи символы загружены.

Ответ 2

Я видел, как этот вопрос периодически "другой" путь (т.е. от родного С++ до С++/CLI), и обычно это вызвано отладчиком, который действительно не собирает, что он должен отлаживать как собственные, так и управляемые код.

Обычно для меня настройка типа отладчика в свойствах конфигурации → Отладка в вашем проекте запуска от "Авто" до "Смешанная" решает проблему.