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

StackOverflow https://stackoverflow.com/questions/1040479

Вопрос

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

Есть ли какой-нибудь способ сделать комментарии к коду в c ++ / cli видимыми для c # intellisence в Visual Studio?

Предполагая, что это не так, каков был бы наилучший способ документировать код c ++ / cli, чтобы упростить его использование на c # (и, конечно, в c ++ / cli)?Каково ваше мнение о XML-комментариях по сравнению с doxygen и другими инструментами (какими)?

Это было полезно?

Решение

Я заставил его работать следующим образом:

<Ол>
  • Используйте комментарии в стиле XML для записей заголовка C ++ / CLI. Это означает, что требуется полный XML-комментарий (комментарии с тройным слешем, как минимум тег <summary>)

  • Убедитесь, что параметр компилятора C ++ создает файлы XML-документации включен. Это должно создать файл XML с документацией с тем же именем, что и ваша сборка (MyDll.xml).

  • Убедитесь, что проект C # ссылается на вашу сборку MyDll.dll, где MyDll.xml также присутствует в той же папке. При наведении указателя мыши на ссылку из сборки MS Visual Studio загрузит документацию.

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

    Другие советы

    Интересно.После опробования нескольких методов, похоже, что intellisense между управляемым проектом 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 documentation . 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()
    */
    

    Вы правы. Не работает Сборка C ++ добавит свою информацию IntelliSense в основной файл .ncb, и вы получите автозаполнение имен методов и т. Д. Однако вы правы в том, что вы не сможете получить & Quot; comment & Quot; описание каждого метода и т. д.

    Вероятно, вы будете иметь большую ценность, если взгляните на Doxygen. А затем найдите Doxygen.NET - что-то, что мы написали для нашего собственного использования, которое создает & Quot; Object Hierarchies & Quot; из XML-файла выводит из Doxygen ...

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top