Обновление: после более глубокого копирования это, похоже, проблема со статическими методами и переменными-членами. Я нашел этот пост на форумах MSDN, но ответа не было.
Я пишу приложение С# WinForms (.Net 2.0) с dll смешанного режима в одном и том же решении. Когда я вхожу в собственный код во время отладки, я не могу "наблюдать" многие переменные указателя. Это кажется странным поведением, потому что некоторые указатели доступны (я думаю, это слово:))
например:
Connection* Connection::Instance()
{
if (innerConnection == NULL)
{
innerConnection = new Connection();
}
return innerConnection;
}
При переходе через этот метод innerConnection недоступен для меня. Значение для этого в окне часов - "ошибка: идентификатор" innerConnection "вне сферы действия". Внутреннее соединение не должно выходить за рамки.
Также в этом примере в окне "Авто" "this" есть
Проект С# задается как проект запуска и ссылается на проект dll С++ (все в том же решении). Я включил встроенную отладку в проекте С# и установил режим отладки в Auto в проекте С++/CLI. Я использую Visual Studio 2005
В моем случае (родная EXE → смешанная DLL → управляемая сборка (все Visual Studio 2008)) мне пришлось установить режим отладки исполняемого файла на "Смешанный". При настройке по умолчанию "Авто" я не мог войти в управляемую сборку.