Dokumentieren von C ++ / CLI-Bibliothek Code zur Verwendung von c # - besten Werkzeuge und Praktiken? [geschlossen]

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

Frage

Ich arbeite an einem Projekt, bei dem eine C ++ / CLI-Bibliothek wird aus einem c # -Anwendung in erster Linie verwendet wird.

Gibt es eine Möglichkeit, den Code Kommentare in C ++ / cli sichtbar zu c # Intellisence in Visual Studio zu machen?

Unter der Annahme, es ist nicht, was der beste Weg wäre, die C ++ / CLI Code zu dokumentieren seine einfache Verwendung von c # ermöglichen (und innerhalb c ++ / cli natürlich)? Was ist Ihre Meinung zu XML kommentiert vs doxygen vs andere Tools (die)?

War es hilfreich?

Lösung

Ich habe es bekommen zu arbeiten, wie folgt:

  1. XML-Style Kommentare für C ++ / CLI-Header-Eintrag verwenden. Dies bedeutet die vollständige XML-Kommentar ist erforderlich (triple-slash Kommentare, <summary> Tag mindestens)

  2. Stellen Sie sicher, dass der C ++ Compiler-Option generieren XML-Dokumentationsdateien ist eingeschaltet. Dies sollte eine XML-Datei mit der Dokumentation mit dem gleichen Namen wie die Assembly (MyDll.xml) erzeugen.

  3. Stellen Sie sicher, dass das C # Projekt verweist die Assembly MyDll.dll wo MyDll.xml auch in dem gleichen Ordner ist. Wenn Sie die Maus über einen Verweis von der Baugruppe in der Dokumentation lädt Visual Studio MS.

Das funktionierte für mich in Visual Studio 2008 auf einer Baugruppe für .NET 3.5 gebaut.

Andere Tipps

DocXml hat den großen Vorteil von VS (Syntaxfärbung, Intellisense, automatischem Export in den XML-Dateien) unterstützt. Die Doxygen-Tools können DocXml Format lesen, so dass Sie immer noch zu ihnen mit diesem Format verwenden können.

Um Sie erzeugen ordentlich und präzise Doc Kommentare mit einem Minimum an Aufwand helfen, können Sie gerne meine auszuchecken Addin AtomineerUtils . Dies nimmt den größten Teil der Arbeit aus der Erstellung und DocXml, Doxygen, JavaDoc oder Qt-Format Kommentare zu aktualisieren und unterstützt C, C ++, C ++ / CLI, C #, Java, JavaScript, Typoskript, JScript, Unreal, PHP und Visual Basic-Code.

Interessant. mehrere Verfahren nach dem Versuch, es sieht wie das Intellisense zwischen einem C ++ Managed Projekt und C # funktioniert nicht.

Im folgenden Beispiel wird Ihnen die richtige Intellisense in der C ++ Umgebung, in der sie deklariert ist, sondern verweist das Objekt in C # zeigt nichts:

// Gets the value of my ID for the object, which is always 14.
public: virtual property int MyId
{
    int get() { return 14; } 
}

XML-Kommentare entweder nicht funktionieren. Ich würde vermuten, dass es sich dabei entweder um einen Fehler oder erfordert etwas, was ich kann nicht herausfinden. Geht man von der fehlenden Antworten auf diese Frage, vielleicht einen Fehler.

Was die Dokumentation Generation, würde ich gehen den Weg der XML-Dokumentation empfehlen. Doxygen unterstützt XML-Dokumentation lesen, die für C #, um die Standard-XML-Dokumentation meist identisch ist. Es tut neigt zusätzliche Zeilen hinzufügen nur für Tag-Öffnungen und Schließungen, ist aber viel besser lesbar meiner Meinung nach als die folgenden doxygen Alternative:

//! 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()
*/

Sie haben Recht. Es funktioniert nicht. Die C ++ Build wird seine IntelliSense Informationen in die Master-NCB-Datei hinzufügen, und Sie erhalten die automatische Vervollständigung von Methodennamen usw. Allerdings bekommen, sind Sie richtig, dass Sie nicht in der Lage, die „Kommentar“ Beschreibung zu den einzelnen Verfahren zu bekommen, usw. .

Sie werden wahrscheinlich viel Wert haben einen Blick auf Doxygen nehmen. Und dann Doxygen.NET sehen - das ist etwas, das wir für unseren eigenen Gebrauch geschrieben, die „Objekthierarchien“ aus den XML-Dateiausgaben von Doxygen bauen ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top