C 代码模拟器的 GUI 和后端选择

本文关键字:后端 选择 GUI 代码 模拟器 | 更新日期: 2023-09-27 18:37:12

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

输入:不变的C代码

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

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

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

P.P.S 请仅建议开源和非许可工具。

C 代码模拟器的 GUI 和后端选择

C++可以并且确实与任何C库或"代码"进行了简单的接口,所以这不是你关心的问题。

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

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

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

有时候,太多的好事就是坏事,在我看来,GTK就是这种情况。它是一个库集合,具有底层功能,但似乎轻于高级抽象。没关系,各个库的设计指导原则都略有不同,本质上是一个松散绑定的集合。从理论上讲,这对于组件的解耦是很好的,但使学习变得更加困难,因为在构成GTK的各种库中,通用设计元素实际上很少。

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

附言。大多数人错误地使用"陡峭的学习曲线"来表示某些东西很难学习。学习曲线显示"知识"与时间的关系。如果它很陡峭,这意味着你学得很快。浅层意味着你学得很慢。