我正在开发一个项目,其中c ++ / cli库主要来自c#应用程序。
有没有办法让c ++ / cli中的代码注释在visual studio中对c#intellisence可见?
假设没有,那么记录c ++ / cli代码的最佳方法是什么,以便从c#中更容易使用(当然在c ++ / cli中)?您对XML评论vs doxygen与其他工具(哪些)的看法是什么?
我已经让它工作如下:
<summary>
标记)这在Visual Studio 2008中适用于为.NET 3.5构建的程序集。
DocXml的主要优点是受VS支持(语法着色,智能感知,自动导出到XML文件)。 Doxygen工具可以读取DocXml格式,因此您仍然可以使用这种格式。
为了帮助您以最少的努力生成整洁和准确的文档评论,您可能想看看我的插件AtomineerUtils。这需要完成创建和更新DocXml,Doxygen,JavaDoc或Qt格式注释的大部分工作,它支持C,C ++,C ++ / CLI,C#,Java,JavaScript,TypeScript,JScript,UnrealScript,PHP和Visual Basic代码。
有趣。在尝试了几种方法后,它看起来像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 ++构建将其IntelliSense信息添加到主.ncb文件中,您将获得方法名称等的自动完成。但是,您是正确的,因为您将无法获得有关每种方法的“评论”描述等。
你可能有很多看待Doxygen的价值。然后查找Doxygen.NET - 这是我们为自己编写的东西,它从Doxygen的XML文件输出构建“对象层次结构”...