Проблема с подсказками данных Visual Studio 2010 в смешанной сборке C ++ / CLI - PullRequest
3 голосов
/ 22 июня 2010

Я недавно перешел на использование Visual Studio 2010. У меня проблема с тем, что DataTips (подсказки отладчика) для типов STL загружаются неправильно.

Например, в следующем коде:

int test( const std::string& inString )
{
    std::string aString( "Hello, World!" );

    return aString.compare( inString );
}

Я не получаю ожидаемую подсказку ( [+] aString | "Hello, World!" )но вместо этого получите что-то вроде [+] aString |{npos = 4294967295} .

Пример. alt text http://bordeaugrove.com/wrong.png

Я немного проверил вещи и обнаружил, что в моих собственных (неуправляемых) проектах я не вижу проблемы.Проект, в котором я получаю эту проблему, представляет собой смешанную нативную библиотеку C ++ / CLI DLL.

Я знаю, что Intellisense не поддерживается для C ++ / CLI в Visual Studio 2010, но, насколько я знаю, это должно работать в отладчике.

Мне интересно, есть ли у меня поврежденная установка или где-то неверные настройки.

Кто-нибудь получил какие-либо предложения?

Ответы [ 2 ]

0 голосов
/ 28 января 2015

Согласно "std-string-content-not-показывая-in-the-debugger" это вызвано смешиванием библиотек, созданных с VS 2005 и VS 2010. Однако может быть несколько причин.

Один из возможных обходных путей - добавить следующее в окно просмотра, где message - это std::string

message._Bx._Ptr // use when the string is longer than 16 characters
message._Bx._Buf // use when the string is less than or equal to 16 characters

Эти переменные могут быть найдены либо путем просмотра источника STL, либо с помощью следующего в окне просмотра, чтобы развернуть объект, где message - это std::string, что позволяет просматривать необработанный формат объектов, игнорируя любой тип данных. Настройки просмотра:

message,!

Более подробное объяснение этого и других спецификаторов формата окна наблюдения можно найти по адресу Спецификаторы формата в C ++ .

0 голосов
/ 22 июня 2010

Согласно первой паре комментариев здесь , C ++ / CLI не поддерживается IntelliSense VS2010. Второй комментарий от члена команды MS, и он предлагает рационализацию для этого.

...