代码之家  ›  专栏  ›  技术社区  ›  Mawg says reinstate Monica

正在查找代码存根生成器(来自头文件)[已关闭]

c c++
  •  16
  • Mawg says reinstate Monica  · 技术社区  · 15 年前

    假设我有一个子系统的头文件,但是不能访问源代码。

    现在,我想生成存根来匹配头文件中声明的所有函数(用于测试目的)。

    我写了一些简单的代码来完成这项工作,但并不完美。有人知道有什么免费软件可以做到这一点吗?


    [最新消息]提问五年后,这个问题仍在上升。

    它作为一个主题被关闭了,现在已经是了(尽管它不是最初发布的时候)。幸运的是,我们现在可以在 https://softwarerecs.stackexchange.com/

    5 回复  |  直到 6 年前
        1
  •  6
  •   Dushara    13 年前

    我想 stubgen 可能是你想要的。

        2
  •  4
  •   Batz    15 年前

    这里有一个Perl和Vim的解决方案 http://www.vim.org/scripts/script.php?script_id=213 它使用ctags,如果需要,还可以使用包含的Perl脚本轻松地删除VIM需求。

        3
  •  3
  •   knight666    15 年前

    Visual Assist X for Visual Studio具有此功能,尽管它不是自动的。

    关于函数

    Tri ProjectTriOnPlane(Tri* a_Triangle);
    

    然后,如果找到相应的.c或.cpp,请转到 Refactor (VA X) -> Create Implementation ,它将创建这样的实现:

    Tri Camera::ProjectTriOnPlane( Tri* a_Triangle )
    {
    
    }
    

    它也没有返回标准,这有点丢脸。

        4
  •  3
  •   swegi    15 年前

    也许吧 Lzz 做你想做的。

        5
  •  1
  •   albert    6 年前

    您可以很容易地使用doxygen编写存根生成器。它并不为人所知,但它附带了一个帮助程序库,它为XML输出提供了一个非常好的抽象(请参见 this page )

    如果你看到 this header file ,您将看到您得到了很好的IStructs、IClass对象,从中可以列出ISactions,然后列出IMembers。一切都非常简单,可根据您的喜好定制。

    因为我怀疑你会从一个通用工具中得到你想要的确切的存根,如果你用doxGEN编写自己的代码,可能会更好,因为所有正确分析C++语法的重提都是为你完成的。

    如果您的测试模式主要依赖于方法参数的类型,那么您可以通过分析方法参数并生成适当的代码来生成完整的测试存根。