У меня есть несколько собственных C-библиотек, которые я вызываю из библиотеки Managed C ++ Class («Rem»). В библиотеке классов «Rem» у меня есть один собственный класс C ++ (api) и один управляемый класс C ++ (API).
Управляемый класс (API) сейчас вызывается из консольного приложения C # (будет использоваться в веб-приложении позже).
При отладке я могу просто пройти через свой родной код.
Моя проблема в том, что при отладке я не вижу значений переменных, кроме простых типов, которые объявлены локально.
Параметры функции недоступны в отладчике, и если я пытаюсь добавить их в качестве Watch, он просто говорит: «error: идентификатор« имя-схемы »вне области видимости (« имя-схемы »- это имя переменной)
Любые структуры просто показывают значение «{…}», как в быстрых часах, так и в окне просмотра.
Если я пытаюсь добавить часы в поле в структуре, я получаю значение «error: ‘entryList.numItems’ не существует»
Я пытался создать консольное приложение в Managed C ++ и отлаживать то же самое.
Я пытался снять
Tools-> Options-> Debugging-> General-> Managed C ++ Compatibility Mode, тогда я вообще не мог войти в код (символы для точек останова не загружались)
В проекте консольного приложения C # я вошел в Свойства-> Отладка и проверил «Включить отладку собственного кода» (и снял флажок)
В библиотеке классов C ++ я зашел в Свойства-> Отладка-> Тип отладчика и попробовал «Смешанный», «Собственный», «Управляемый» и «Авто».
Любые предложения относительно того, что я делаю неправильно?
Я предполагаю, что вы используете Visual Studio 2012 Update 2. В этом случае — это известная ошибка с обновлением 2:
Тем не менее, будьте осторожны, «обходной путь» удаления обновления 2 оставит вас со сломанной Visual Studio, как видно из этого отчета об ошибке (да, обновление 2 не работает):
Если вы не используете обновление 2, это может быть неправильный ответ, но это может помочь тем, кто испытывает именно эту проблему, используя обновление 2.
Других решений пока нет …