Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为swig生成的C生成doxygen注释,它包装了C++; 我有一个C++编写的项目,我也使用SWIG来生成一些C包装。C++代码使用DoXyGy风格注释来注释类和函数。是否有可能让Swig获取这些doxygen注释并为C#包装器类和函数生成doxygen注释?_C#_C++_Doxygen_Swig - Fatal编程技术网

为swig生成的C生成doxygen注释,它包装了C++; 我有一个C++编写的项目,我也使用SWIG来生成一些C包装。C++代码使用DoXyGy风格注释来注释类和函数。是否有可能让Swig获取这些doxygen注释并为C#包装器类和函数生成doxygen注释?

为swig生成的C生成doxygen注释,它包装了C++; 我有一个C++编写的项目,我也使用SWIG来生成一些C包装。C++代码使用DoXyGy风格注释来注释类和函数。是否有可能让Swig获取这些doxygen注释并为C#包装器类和函数生成doxygen注释?,c#,c++,doxygen,swig,C#,C++,Doxygen,Swig,目前,Swig根本不解析包含doxygen文档的代码注释 自几年前开始,就有一个SWIG分支正在开发中,以使SWIG能够处理Doxygen注释,但即使是现在(AFAIK)也只将它们映射到Java和Python文档中 目前最好的选择是从C++源代码中提取DOXEGEN文档,并将其插入到SWIG生成的包装器中。为了理解如何做到这一点,下面简要解释一下doxy2swig.py的作用(这确实是针对python文档字符串的): 让Doxygen将文档提取为XML格式 解析XML,并将其重新格式化为合适的P

目前,Swig根本不解析包含doxygen文档的代码注释

自几年前开始,就有一个SWIG分支正在开发中,以使SWIG能够处理Doxygen注释,但即使是现在(AFAIK)也只将它们映射到Java和Python文档中

目前最好的选择是从C++源代码中提取DOXEGEN文档,并将其插入到SWIG生成的包装器中。为了理解如何做到这一点,下面简要解释一下
doxy2swig.py
的作用(这确实是针对python文档字符串的):

  • 让Doxygen将文档提取为XML格式
  • 解析XML,并将其重新格式化为合适的Python文档字符串
  • 编写
    %feature(“docstring”)
    SWIG指令,告诉SWIG将docstring附加到包装的类和方法
  • 基本上,C#也可以做类似的事情。我不知道如何对C#执行(2),即如何将Doxygen XML输出转换为合适的C#文档,这可能需要您自己实现(可能需要修改
    doxy2swig.py
    脚本)

    对于(3)来说,有一个很好的技巧是有文档记录的,注意到同样的技巧也可以通过使用
    %csclassmodifiers
    %csmethodmodifiers
    对C#实现。这些SWIG功能指令可用于将
    public
    protected
    预先添加到C#方法或类。但是它们可以被劫持来预先编写提取的文档(+
    public
    关键字,不要忘记)。因此,它们有效地支持与Python的
    %功能(“docstring”)
    指令相同的功能


    最后,我不知道C#,但是在C#包装中包含Doxygen注释有什么意义呢?如果您只想使用doxGEN生成文档,您可以直接从C++源代码中进行此操作,因此您不会获得任何东西。在Python中,docstring可以在运行时显示为帮助,并且被一些IDE使用。C#也有这个吗

    存在一个doxy2swig.py脚本,它生成一个可以包含在interface.i文件中的文件。很简单,我很难让doxy2swig.py与C#一起工作。它看起来是为Python设计的,粗略的谷歌搜索并没有产生任何结果。有什么想法吗?应该很好用。它生成一个
    DesiredName.i
    文件,可以使用
    %include“DesiredName.i”
    包含该文件。你有输出吗?是的,我有输出。我用Python文档字符串填充。将这些文件包含在C#文件中似乎没有任何作用。我给这个问题增加了一个悬赏,如果你能告诉我如何使它工作,它是你的:)对不起,刚刚删除了我的上一个Windows分区-没有任何返回的可能性。这几乎是我一直在走的路,所以我想很高兴我的怀疑得到证实。至于你的问题:“最后,我不知道C#,但在C#包装中包含Doxygen注释有什么意义?”我想我的问题应该更清楚。我对C#的评论不太感兴趣,而是对它们用来生成的文档页面感兴趣。直接使用C++ DOC字符串并不太有效,因为很多注释会引用其他函数,而这些引用(和超链接)需要指向适当的C函数。