51

私はc++/ cliライブラリが主にac#アプリケーションから使用されているプロジェクトに取り組んでいます。

Visual Studio内のc#インテリセンスにc ++ / cliのコードコメントを表示する方法はありますか?

ない場合、c#から(そしてもちろんc ++ / cli内で)簡単に使用できるようにc ++ / cliコードを文書化するための最良の方法は何でしょうか?XMLコメントvsdoxygenvs他のツール(どちら)についてどう思いますか?

4

5 に答える 5

57

次のように動作するようになりました。

  1. C++/CLI ヘッダー エントリには XML スタイルのコメントを使用します。これは、完全な XML コメントが必要であることを意味します (トリプル スラッシュ コメント、<summary>少なくともタグ)。

  2. C++ コンパイラ オプションの [ XML ドキュメント ファイルの生成]がオンになっていることを確認します。これにより、アセンブリ (MyDll.xml) と同じ名前のドキュメントを含む XML ファイルが生成されます。

  3. C# プロジェクトが、MyDll.xml も同じフォルダーに存在するアセンブリ MyDll.dll を参照していることを確認してください。アセンブリからの参照にマウスを合わせると、MS Visual Studio がドキュメントを読み込みます。

これは、Visual Studio 2008 で .NET 3.5 用にビルドされたアセンブリで機能しました。

于 2009-07-02T00:27:26.410 に答える
2

DocXml には、VS でサポートされているという大きな利点があります (構文の色分け、インテリセンス、XML ファイルへの自動エクスポート)。Doxygen ツールは DocXml 形式を読み取ることができるため、この形式でも引き続き使用できます。

最小限の労力で整然とした正確な Doc コメントを生成するために、私のアドインAtomineerUtilsをチェックしてみてください。これにより、DocXml、Doxygen、JavaDoc、または Qt 形式のコメントの作成と更新のほとんどの作業が不要になり、C、C++、C++/CLI、C#、Java、JavaScript、TypeScript、JScript、UnrealScript、PHP、および Visual Basic コードがサポートされます。

于 2009-07-02T20:53:09.207 に答える
1

面白い。いくつかの方法を試した後、マネージ 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 は、C# の標準 XML ドキュメントとほぼ同じ XML ドキュメントの読み取りをサポートしています。タグの開始と終了のためだけに余分な行を追加する傾向がありますが、私の意見では、次の 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()
*/
于 2009-06-24T19:52:28.240 に答える
0

Doxygenを見ると、おそらく多くの価値があります。次に、Doxygen.NETを検索します。これは、DoxygenからのXMLファイル出力から「オブジェクト階層」を構築する独自の用途のために作成したものです...

于 2009-07-01T20:05:07.123 に答える
0

あなたが正しいです。うまくいきません。C++ ビルドは、その IntelliSense 情報をマスター .ncb ファイルに追加し、メソッド名などのオートコンプリートを取得します。ただし、各メソッドなどに関する「コメント」の説明を取得できないという点で、あなたは正しいです。 .

于 2009-07-01T19:42:42.847 に答える