Я знаю, что решением было бы использовать VS 2005 или 2008, но на данный момент это не вариант. Я должен написать расширение для отладчика VS 2003 C ++, чтобы улучшить способ отображения данных в окне просмотра. Основная причина, по которой я использую DLL, а не просто базовую функциональность autoexp.dat, заключается в том, что я хочу, чтобы все отображалось условно. То есть Я хочу иметь возможность сказать «Если имя члена не является пустой строкой, отображаемое имя, в противном случае отобразить [какой-то другой элемент]»
Я не могу найти много документации в Интернете, от MS или других людей, которые использовали (или пытались использовать) эту часть VS 2003. Образец MSDN EEaddin был хорошим началом, но очень простым и не очень помоги мне очень далеко
Пока что я только учусь, как отображать различные типы, не зная точно, над какими типами я буду работать в конце.
Мне удалось (через много проб и ошибок) заставить DLL отображать элементы указателя на элемент базового типа, строковые элементы, элементы указателя на определяемый пользователем тип и элементы auto_ptr . В настоящее время у меня возникают проблемы с отображением векторных элементов и элементов auto_ptr .
(Я нашел страницу, на которой написано, что auto_ptrs устарела, но мне нужно иметь возможность правильно отображать их, поскольку они используются в коде, для которого предназначено мое расширение.)
Мой вопрос: кто-нибудь делал такие вещи, и есть ли у вас какие-либо полезные документы по этому вопросу?
Спасибо!
[обновление:]
Я выяснил, почему у меня проблемы с членами класса auto_ptr . Это из-за способа реализации строкового класса. Он имеет буфер char [16], в котором хранятся данные для коротких строк, и указатель char *, если строка длиннее (15 символов + символ завершения). Я не уверен, возможно ли и стоит ли пытаться взломать это, чтобы отобразить более длинные строки (я могу отобразить строки, достаточно короткие, чтобы их можно было сохранить в буфере char [16])