【问题标题】:Wanted: Compiler Tool for Users of Software System通缉:软件系统用户的编译工具
【发布时间】:2012-06-28 22:32:20
【问题描述】:

我不确定这个问题的标题是否切中要害。我已经用 C C++ for Windows 编写了一个大型软件系统,并希望为该系统的用户提供添加编译代码的选项。用户应该能够做一些基本的事情,并与我的程序交换数据。

目前实现的方式是通过 DLL。但是为此,需要一个成熟的编译器,这并不像我希望的那么容易。是否有可以创建 Windows DLL 的微型 C 编译器?

另一个想法是 Java 原生接口。但这需要一个完整的Java系统在后台运行,在里面运行代码并不容易。

您还有其他想法吗?

【问题讨论】:

  • 听起来像 lua、python 或 ruby​​ 这样的嵌入式语言会有所帮助。
  • 对于最小的 c/c++ 编译器,可以看看 mingw。
  • 我会选择 lua。语法似乎比 TCL 好很多,而且很容易被沙箱化。网络上有大量的社区支持和示例代码。快速、安全、简单。

标签: c++


【解决方案1】:

任何解释语言? (TCL 和 Lua 被设计为扩展语言,但您几乎可以轻松地与任何其他语言交互)。

【讨论】:

    【解决方案2】:

    python 集成怎么样?

    您可以创建一个与您的应用程序交互的 python 接口。 Python 相当容易学习,应该很容易与 c/c++ 集成。 The python documentation has an own chapter on that.

    您也可以使用swig 之类的工具来生成界面。

    这样做的好处是他们不必编译任何东西。他们可以只提供可以加载到您的应用程序并在软件中运行的 python 文件。这是 python 的一个众所周知的用途,它的简单语法促进了这一点。

    【讨论】:

      【解决方案3】:

      正如另一位所说,您最好提供嵌入式语言。

      我会加入 javascript 并使用 google v8 engine 通过使用 javascript,您可以获得几乎所有人都可以使用和编程的语言。 您可以嵌入其他 JavaScript 引擎,例如 SpiderMonkey。 请参阅此answer 了解选择。

      【讨论】:

        【解决方案4】:

        解释型语言还不够好。我需要速度。该软件本身是一种解释性语言。所以我添加了对微型 C 编译器的支持。它只是 C,我确实检查了 mingw,它可能不会像这个那么小。感谢您的所有提示。

        几个月后添加:

        实际上,我现在有两个工具:TinyC 和 Python。它们之间的速度差异很明显(5-10 倍),但这通常无关紧要。 Python 对用户来说要容易得多,尽管我设法将两者都很好地集成到 Euler GUI 中。

        【讨论】:

          【解决方案5】:

          其中一种方法是添加脚本。您的应用程序可以托管脚本环境并在那里公开其服务。用户将能够执行 JScript/VBScript 脚本并与您的应用程序交互。优点是,通过合理的努力,您可以将众所周知且有据可查的脚本语言的功能引入您的应用程序(我想那里甚至还有用于脚本的调试器)。您需要将应用服务塑造成 COM 接口,并且脚本将能够使用您在 C++ 端分配的方法名称自动访问它们。

          【讨论】:

            猜你喜欢
            • 2019-08-24
            • 2019-06-05
            • 1970-01-01
            • 1970-01-01
            • 2017-01-02
            • 1970-01-01
            • 1970-01-01
            • 2011-12-10
            • 1970-01-01
            相关资源
            最近更新 更多