Внутренний формат файлов Visual Studio .ncb. - PullRequest
0 голосов
/ 31 января 2009

Я решил, что мне действительно нужно получить блок-схемы для обратного проектирования некоторого кода, который я унаследовал. У меня нет версии Team VS, поэтому я не могу использовать встроенные возможности Team с Visio. Поэтому я подумал, что проанализирую файлы .ncb (Информация о парсере) и создам диаграммы с точкой (из graphviz.org). Как трудно это может быть? Но я не могу найти документацию по внутренностям этого файла.

Я действительно не хочу использовать коммерческое приложение для создания блок-схем. И все бесплатные надстройки, которые я видел, предполагают, что я использую C # или VB. Тем не менее, я использую C и C ++.

Я попробовал Microsoft "Visual Studio Learning Pack", в котором есть инструмент "Блок-схема визуального программирования". Но, похоже, он не работает с C ++. Так близко!

Итак, есть ли у кого-нибудь указатели на формат файла или другие предложения (будьте вежливы!)?

Ответы [ 2 ]

2 голосов
/ 31 января 2009

Не думаю, что у вас есть много шансов проанализировать файлы NCB. Они представлены в собственном двоичном формате, который изменяется и, вероятно, будет меняться в каждой версии Visual Studio. Из того, что я где-то читал, возможно, что в VS2010 NCB будет отброшен, а информация о intellisense будет сохранена в обычной базе данных с использованием SQL Server Express.

Другой вариант, который вы могли бы рассмотреть, - это использовать какой-то другой инструмент, который анализирует ваш код и строит диаграммы и диаграммы UML. Doxygen делает это в некоторой степени, и есть множество коммерческих инструментов, которые также делают. У меня есть некоторый личный опыт работы с Rational Rose (который, возможно, уже не существует) и инструмент под названием Вместе. Этот список может быть полезен

0 голосов
/ 25 февраля 2010

Для структурного анализа в смысле «кто называет что», «кто наследует / перегружает где» и «кто читает / пишет глобальные переменные», я однажды использовал DeHydra (проект Mozilla) для анализа и Yed (www.yworks. com) для отображения графика. Оба бесплатны.

Dehydra работает под Linux и требует, чтобы ваш код прошел компиляцию gcc. Это не слишком серьезное препятствие, поскольку VC может генерировать make-файлы, которые можно модифицировать вручную для gnu make. В моем случае потребовалось некоторое исправление включаемых файлов, но я наконец смог получить нужную информацию.

Мне потребовалось 3 дня, чтобы заставить DeHydra работать, еще 2 дня, чтобы настроить make-файл, включая и Еще 3 дня на адаптацию кода JavaScript, который внутри DeHydra извлекает необходимую информацию.

DeHydra + Javascript теперь обеспечивает в одном компиляторе запуск файла graphml, содержащего структуру кода, которая может напрямую отображаться и интерактивно манипулироваться в yed.

...