C++ 在Visual Studio 2010 C+中为///生成XML文档注释+;
我需要用summary、returns和param标记对我的函数原型(用C/C++编写)进行注释。我如何说服VisualStudio在像C#一样的三个斜杠后插入xml标记?我找到了一个解决办法。当我在C++项目中重命名XX .h X.CS时,我可以使用/ /生成XML注释(XML注释中的智能信息也可以工作)。一定有更好的办法,不是吗? 如果我手工写的话,我会死的。我将感谢每一个有用的评论C++ 在Visual Studio 2010 C+中为///生成XML文档注释+;,c++,xml,comments,C++,Xml,Comments,我需要用summary、returns和param标记对我的函数原型(用C/C++编写)进行注释。我如何说服VisualStudio在像C#一样的三个斜杠后插入xml标记?我找到了一个解决办法。当我在C++项目中重命名XX .h X.CS时,我可以使用/ /生成XML注释(XML注释中的智能信息也可以工作)。一定有更好的办法,不是吗? 如果我手工写的话,我会死的。我将感谢每一个有用的评论 /// <summary> /// /// </summary> /// <
/// <summary>
///
/// </summary>
/// <param name="aa"></param>
/// <returns></returns>
bool function1(TypeX aa);
//
///
///
///
///
bool功能1(X型aa);
此功能未内置。你可以尝试使用。我还没用过自己,但看起来很有希望。它生成文档注释并支持C++。不过它要花10美元。看看这个插件:
现在将插入C++注释的XML元素。只需将光标放在一个元素上,然后按Ctrl+Shift+D
GHOSTODC有一个已经用于此的个人版本,
< P>在///类型中在C++文件中创建XML DOC注释存根,类似于VisualStudio中C语言所能使用的注释存根。在VisualStudio 2010 C++中,这也有一些基本的知识产权来完成XML文档注释。< P>,您可以定义宏来插入东西。 定义宏以插入基本函数标题摘要行/// <summary> </summary>
//
另一个用于空参数行,另一个用于返回行
/// <param name=""> </param>
//
及
//
只需三个宏即可满足您的大部分需求。如果使用得足够多,则为//
和//
和
添加一个宏,如果使用得不够多,则需要手动输入宏
是,您必须手动在中键入参数名称。:)宏不能做所有事情。:)
见:
见:
更新:我在写这个答案时没有注意到这些线索:
(有建议的解决方法)这适用于C++/CLI
另一种方法是使用将C++/CLI代码转换为C。然后,在C#中,您可以使用IntelliSence支持编写注释。然后只需将注释复制到C++/CLI项目中,进行编译即可:-)
将Visual Studio(2013)配置为使用ILSpy
ILSpy.exe
;对于参数,输入$(TargetPath)
;对于初始目录,输入$(TargetDir)
Visual Studio 2015 Update 2
首先,打开XML文档。这将生成一个元数据文件,这意味着注释将在外部可见,包括C#
接下来,根据
@tcb
的答案,安装。重新启动Visual Studio,您就可以开始了。此功能终于作为本机功能出现在Visual Studio 2019 16.6中
(以及自动生成的标题和C++20完全支持):
多年之后……/P>这是C++和C语言团队使用不同智能引擎的结果。据我所知,在C++文件中键入代码> > ///</代码>时,您将无法获得C语言自动完成。当文件具有cs扩展名时,我可以。重命名文件以编写xml注释并不合适,但它会有所帮助。虽然我同意应该有一种方法让IDE为您执行此操作,但在
方面,手动编写会让我丧命。
真的吗?如果这些文档块中的文本足够详细(这样您就可以在忘记编写代码的人是您之后理解如何使用代码),那么//
和xml标记的开销就没有那么大了。:-——或者,过分错误地引用电影《第十三勇士》中的“学会打字更快”。:-):-):-)@JesseChisholm这确实是个问题。我只是想在某个时候停止使用C++,因为Atomineer Utils是你想要的产品。在免费试用10分钟后,我很高兴地支付了10美元。如果您使用过C#或VB,它的功能与您所期望的一样。这在Visual Studio 2015 Update 2的C++/CLI中非常有效。在功能启动之前需要重新启动VS。我不推荐这样做。它要求开发人员更改代码,以便在所有情况下都能工作,这对于只添加注释的工具来说是不可能的。此外,它的行为不像我们在C#中习惯的那样,有时会产生更多的工作。例如,它不会在新行中插入//
,每次输入三重斜杠时都会愚蠢地插入
标记。
/// <returns> </returns>