Профилировщик NuMega True Time работает в DevPartner Studio от Micro Focus. Он обеспечивает детализацию на уровне строк и методов для приложений .NET, требующих только PDB, без необходимости в источнике (но это помогает.). Он может отличить алгоритмически тяжелые подпрограммы от тех, которые требуют длительного ввода-вывода, используя наш собственный драйвер синхронизации режима ядра для каждого потока. Версия 10.5 поставляется с новой поддержкой 64 процессов 4 февраля 2011 года. Бесстыдный плагин: я работаю над линейкой продуктов DevPartner. Следите за новостями о запуске 10.5 на http://www.DevPartner.com .
Отказ от ответственности: я менеджер по продукту DevPartner в Micro Focus.
Я заставил это работать следующим образом:
Используйте комментарии в стиле XML для записей заголовков C ++ / CLI. Это означает, что требуется полный XML-комментарий (комментарии с тройной косой чертой, как минимум тег
)
Убедитесь, что параметр компилятора C ++ Generate XML Documentation Files включен . Это должно создать XML-файл с документацией с тем же именем, что и ваша сборка (MyDll.xml).
Убедитесь, что проект C # ссылается на вашу сборку MyDll.dll, где MyDll.xml также находится в той же папке. При наведении указателя мыши на ссылку из сборки MS Visual Studio загрузит документацию.
У меня это сработало в Visual Studio 2008 на сборке, созданной для .NET 3.5.
Интересно. После опробования нескольких методов выяснилось, что intellisense между проектом Managed C ++ и C # не работает.
Следующий пример даст вам правильный intellisense в среде C ++, в которой он объявлен, но ссылка на объект в C # ничего не показывает :
// Gets the value of my ID for the object, which is always 14.
public: virtual property int MyId
{
int get() { return 14; }
}
XML-комментарии тоже не работают. Я бы предположил, что это либо ошибка, либо требуется что-то, чего я не могу понять. Судя по отсутствию ответов на этот вопрос, возможно, это ошибка.
Что касается создания документации, я бы рекомендовал пойти по пути документации XML. Doxygen поддерживает чтение XML-документации , которая в основном идентична стандартной XML-документации для C #. Он имеет тенденцию добавлять дополнительные строки только для открытия и закрытия тегов, но, на мой взгляд, он гораздо более читабелен, чем следующая альтернатива doxygen:
//! A normal member taking two arguments and returning an integer value.
/*!
\param a an integer argument.
\param s a constant character pointer.
\return The test results
\sa Test(), ~Test(), testMeToo() and publicVar()
*/
DocXml имеет основное преимущество, заключающееся в поддержке VS (синтаксическая окраска, intellisense, автоматический экспорт в файлы XML). Инструменты Doxygen могут читать формат DocXml, поэтому вы все равно можете использовать их с этим форматом.
Чтобы помочь вам с минимальными усилиями создавать аккуратные и точные комментарии в документе, вы можете проверить мой надстройку AtomineerUtils ]. Это берет на себя большую часть работы по созданию и обновлению комментариев формата DocXml, Doxygen, JavaDoc или Qt и поддерживает C, C ++, C ++ / CLI, C #, Java, JavaScript, TypeScript, JScript, UnrealScript, PHP и код Visual Basic.
Вероятно, вы получите Очень полезно взглянуть на Doxygen. А затем найдите Doxygen.NET - это то, что мы написали для нашего собственного использования, которое строит «иерархии объектов» из выходных данных файла XML из Doxygen ...
Вы правы. Не работает. Сборка C ++ добавит свою информацию IntelliSense в главный файл .ncb, и вы получите автозаполнение имен методов и т. Д. Однако вы правы в том, что не сможете получить описание "комментария" о каждом методе и т. Д. .