У меня есть собственные библиотеки DLL C, которые я вызываю из библиотеки Managed C ++ Class (Rem). В библиотеке классов Rem у меня есть один собственный класс C ++ (api) и один управляемый класс C ++ (API).
Управляемый класс (API) на данный момент вызывается из консольного приложения C # (позже будет использоваться в веб-приложении).
При отладке я могу без проблем пройтись по собственному коду.
Моя проблема в том, что при отладке я не вижу значений каких-либо переменных, кроме простых типов, объявленных локально.
Параметры функции недоступны в отладчике, и если я попытаюсь добавить их как Watch, он просто скажет ошибку: идентификатор 'schema_name' вне области видимости ('schema_name' - это имя переменной)
Любые структуры просто показывают значение {...} как в быстром просмотре, так и в окне просмотра.
Если я попытаюсь добавить часы к полю в структуре, я получу ошибку значения: 'entryList.numItems' не существует
Что я пробовал:
Я пробовал создать консольное приложение на управляемом C ++ и отлаживать его, то же самое.
Я попытался снять флажок Инструменты- ›Параметры-› Отладка- ›Общие-› Управляемый режим совместимости C ++, после чего я вообще не смог войти в код (символы для точек останова не загружены)
В проекте консольного приложения C # я вошел в Свойства- ›Отладка и установил флажок« Включить отладку собственного кода »(и снял флажок с него).
В библиотеке классов C ++ я перешел в Свойства- ›Отладка-› Тип отладчика и попробовал смешанный, собственный, управляемый и автоматический.
Есть предложения относительно того, что я делаю не так?
printf
вывести ее codepad.org/A3Pc8o56. Мне удалось выполнить отладку в собственной библиотеке DLL и увидеть элементы структуры. Затем я попытался изменить различные параметры компиляции и связывания в dll. Ничего из этого не испортило мою отладку. Вы можете заставить это работать? Если да, может быть, отредактируйте свой код C ...? - person TooTone   schedule 24.04.2013