Вопрос по – Документирование кода библиотеки C ++ / CLI для использования с c # - лучшие инструменты и практики? [закрыто]

47

Я работаю над проектом, в котором библиотека c ++ / cli используется в основном из приложения c #.

Есть ли способ сделать комментарии кода в c ++ / cli видимыми для c # intellisence в пределах visual studio?

Если предположить, что нет лучшего способа документировать код на c ++ / cli, чтобы его было проще использовать из c # (и, конечно, в c ++ / cli)? Что вы думаете о комментариях XML против doxygen против других инструментов (которые)?

Ваш Ответ

5   ответов
0

Sense в основной файл .ncb, и вы получите автозаполнение имен методов и т. Д. Однако вы правы в том, что вы не сможете получить & quot; комментарий & quot; описание каждого метода и т. д.

0

вероятно, будете иметь большую ценность, глядя на Doxygen. А затем найдите Doxygen.NET - что-то, что мы написали для нашего собственного использования, которое создает «Иерархии объектов». из XML-файла выводит из Doxygen ...

2

а, intellisense, автоматический экспорт в файлы XML). Инструменты Doxygen могут читать формат DocXml, поэтому вы можете использовать их и в этом формате.

Чтобы помочь вам создавать аккуратные и точные комментарии к документу с минимальными усилиями, вы можете проверить мое дополнениеAtomineerUtils, Это занимает большую часть работы по созданию и обновлению комментариев в формате DocXml, Doxygen, JavaDoc или Qt и поддерживает код C, C ++, C ++ / CLI, C #, Java, JavaScript, TypeScript, JScript, UnrealScript, PHP и Visual Basic.

2

он выглядит как интеллектуальный смысл между проектом Managed C ++ и C # не работает.

Следующий пример даст вам правильный смысл в среде 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()
*/
50

Use XML style comments for your C++/CLI header entries. This means the full XML comment is required (triple-slash comments, <summary> tag at a minimum)

Make sure that the C++ compiler option Generate XML Documentation Files is on. This should generate an XML file with documentation with the same name as your assembly (MyDll.xml).

Make sure that the C# project references your assembly MyDll.dll where MyDll.xml is also present in the same folder. When you mouse over a reference from the assembly, MS Visual Studio will load the documentation.

Это работало для меня в Visual Studio 2008 на сборке, созданной для .NET 3.5.

Довольно много голосов по этому поводу - выполнил вашу рекомендацию (подтвержденоxml файл присутствует и комментарии существуют, однако intellisense не показывает комментарии. Это в VS2017.
Да, дело в том, чтобы скопировать XML (а также PDB, если вы хотите отладить) вместе с dll, на которую вы ссылаетесь. Это будет работать и в VS2005.
Работает в Visual Studio 2010 тоже. Разница лишь в том, что XML-файлы имеют расширение ".xdc"
Любая новая информация о VS2015-2017 Использование .NET 4+? Потому что ответ полностью в порядке в течение 2008-2012 годов, но 3.5 устарела давно ...

Похожие вопросы