我正在從事一個C++/cli庫主要用於c#應用程序的項目。記錄從c#使用的C++/CLI庫代碼 - 最佳工具和實踐?
有沒有什麼辦法讓C++/cli中的代碼註釋在Visual Studio中對c#intellisence可見?
假設沒有,最好的方法來記錄c + +/cli代碼,以使其更容易從c#中使用(當然在C++/cli當然)?你對XML評論和doxygen vs其他工具(哪些)有什麼看法?
我正在從事一個C++/cli庫主要用於c#應用程序的項目。記錄從c#使用的C++/CLI庫代碼 - 最佳工具和實踐?
有沒有什麼辦法讓C++/cli中的代碼註釋在Visual Studio中對c#intellisence可見?
假設沒有,最好的方法來記錄c + +/cli代碼,以使其更容易從c#中使用(當然在C++/cli當然)?你對XML評論和doxygen vs其他工具(哪些)有什麼看法?
我得到它的工作方式如下:
爲您的C++/CLI標頭條目使用XML樣式註釋。這意味着需要完整的XML註釋(三斜槓註釋,至少<summary>
標記)
確保C++編譯器選項Generate XML Documentation Files處於打開狀態。這應該生成一個XML文件,其文檔名稱與您的程序集(MyDll.xml)相同。
請確保C#項目引用您的程序集MyDll.dll,其中MyDll.xml也存在於同一個文件夾中。將鼠標懸停在程序集的引用上時,MS Visual Studio將加載文檔。
這對我在Visual Studio 2008中爲.NET 3.5構建的程序集起作用。
有趣。嘗試了幾種方法之後,它看起來像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 supports reading XML documentation這與C#的標準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()
*/
你是對的。它不起作用。 C++版本將其智能感知信息添加到主.ncb文件中,您將獲得方法名稱的自動完成等。但是,您是正確的,因爲您將無法獲得關於每種方法的「評論」描述,等等
你可能會有很多值得看看Doxygen。而再看看Doxygen.NET - 這是我們爲我們自己的使用寫了建立從Doxygen的XML文件輸出「對象層次」 ......
DocXml具有VS(語法着色,智能感知,自動導出到XML文件)支持的主要優勢。 Doxygen工具可以讀取DocXml格式,所以您仍然可以使用這種格式。
爲了幫助您生成用最少的努力整齊,準確的文檔註釋,你可能想看看我的插件AtomineerUtils。這需要的大部分工作了創建和更新DocXml,使用Doxygen,的JavaDoc或Qt的格式的註釋,並且它支持C,C++,C++/CLI,C#,Java和JavaScript的,打字稿,JScript中,虛幻,PHP和Visual Basic代碼。
呀,關鍵是要在XML(也PDB,如果你想調試)一起你引用的DLL複製。這也將在VS2005中運行。 – 2009-07-02 20:55:19