-2

我必须制作一个模拟器。功能如下所述:

输入:不可更改的 C 代码

功能:编译并运行这些代码并产生输出。每个 C 代码都可能是变量。为所有这些变量给出了输入函数(基于时间)。因此,如果输入的 c 代码文件有一个简单的加法器 int add(a,b)/* a 和 b 随时间变化并具有指定的 fn。因此,在 t=0 a=1,b=2 在 t=4 b 可能会更改为 6,依此类推*/我必须在 diff 时间运行代码并生成输出。也检查那些 o/ps。出于所有这些目的,我也需要一个 GUI。

需要后端和 Gui 工具的建议。

PS:我的研究告诉我,带有 GTK for GUI 的 C 后端是一个可行的解决方案,但 GTK 太冗长乏味了。我对 Qt/C++ 感到困惑,因为它可能无法与 ac 后端一起很好地工作。C++ 后端对我来说很难导入和运行这些输入代码(extern 不能一直工作)。我还查看了用于 GUI 的 C# 和到 dll 文件的链接,但在许多博客中也提到不那么可行。有什么建议么?已经谢谢了。

PPS 请仅推荐开源和非许可工具。

4

1 回答 1

0

C++ 可以而且确实可以与任何 C 库或“代码”进行微不足道的接口,所以这不是你关心的问题。

我建议使用 Qt。它带有一个不错的免费 IDE:Qt Creator。它提供了通常超过 GTK 的高级功能。唉,GTK 库生态系统非常“可破解”——底层对象模型允许各种创造性的使用和滥用,但恕我直言,学习曲线非常浅——与 Qt 相比,“完全”理解 GTK 需要更长的时间.

这仅仅是因为 GTK 的底层低级库提供了许多由 C++ 语言接管或在 Qt 中隐藏起来的功能。我发现 GTK 的基础更加灵活,但这似乎都是寻找问题的解决方案。Qt/C++ 的更简单和更不灵活的对象模型也同样有效,并且更容易学习,因为它的数量要少得多。

还要从投资时间的角度考虑。学习精通 C++ 可以移植到仅使用相同语言的其他项目中。学习精通 glib 只会帮助您处理专门使用 glib 的 C 项目,而且我认为它们比 C++ 项目要少得多。

有时,太多的好事是一件坏事,在我看来,GTK 就是这种情况。这是一个库集合,它具有低级功能,但似乎对高级抽象很轻。别介意各个图书馆的设计指导原则略有不同,本质上是一个松散的集合。这在理论上对组件的解耦很有好处,但会使学习变得更加困难,因为构成 GTK 的各种库中的通用设计元素几乎没有。

相比之下,Qt 几乎是一个单一的、统一的大型库,拆分为您可以选择不使用的模块。

PS。大多数人错误地使用“陡峭的学习曲线”来表示某些东西很难学习。学习曲线显示“知识”与时间的关系。如果它很陡,这意味着你正在快速学习。浅的意味着你学习缓慢。

于 2012-06-15T14:07:48.230 回答