【问题标题】:Perl/Tk GUI for C++ Application用于 C++ 应用程序的 Perl/Tk GUI
【发布时间】:2008-10-17 11:44:28
【问题描述】:

我必须使用需要 GUI 的 C++ 做一个大学项目。我想为 GUI 使用 Perl/Tk,但我不确定如何将 C++ 链接到 Perl。该项目需要能够来回传递变量。任何人都可以指出一些好的教程/书籍来链接这两者的方向,或者关于我应该如何解决这个问题的任何想法,因为我以前从来没有链接过两种语言。

【问题讨论】:

    标签: c++ perl perltk


    【解决方案1】:

    我是 working library 以尽可能简单,但它仍然是 alpha 版本。

    【讨论】:

      【解决方案2】:

      你也可以试试swig。它是一种从 C/C++ 生成多种脚本语言接口的工具。

      【讨论】:

        【解决方案3】:

        由于 Perl 将提供 GUI,我将 C++ 代码嵌入到 Perl 中。假设会有大量的 C++ 代码,我会将其放入库中。将该库链接到 Perl 的传统方法是使用 XS 创建一个 Perl 模块。 Tutorial for writing XSUBsXS language reference manual 将对此有所帮助。

        一种更简单的方法可能是使用Inline 模块。我以前用过Inline::C,效果很好,但我从未尝试过Inline::CPP(C++ 版本)。我看到它有mixed reviews

        【讨论】:

        • 多年后跟进。 Inline::CPP 自 2003 年以来就没有维护过。2011 年,我作为共同维护者开始对其进行维护,并在 2011 年 11 月至 2012 年 5 月之间提交了大约 135 个补丁。现在它的状态好多了。 RT 错误列表归结为一个挥之不去的愿望清单项目。 CPAN 测试人员的安装成功率高达 90% 左右。
        【解决方案4】:

        如果我要解决这个问题,我会使用 TCL/TK 创建一个 GUI,然后用 C/C++ 构建一个可以从 TCL/TK 调用的 TCL 扩展。这是 TCL/TK 真正擅长的事情之一(其他动态语言也可以做到这一点,但我喜欢 TCL/TK)。您使用 C++ 位创建一个共享库(Unix 上的 .so 或 Windows 上的 .dll),当您加载该库时,它们会作为命令导入 TCL。

        已经提到过的 Swig 是一个帮助自动化包装过程的工具,它可以获取您的 C++ 代码并创建一个包装器,允许将其加载到多种语言中,例如 TCL、Perl、Python、Ruby ...

        http://www.tcl.tk/ 开始,了解 TCL 和 TK 的大量信息。

        【讨论】:

          【解决方案5】:

          如果它是一个小项目,那么花大量时间让两种语言进行对话可能不值得投资。您可能会考虑使用更合适的工具。 C# 与 C++ 对话的痛苦要少得多。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-03-29
            • 1970-01-01
            相关资源
            最近更新 更多