1

我有一个用 C++ 编写的简单(也是微不足道的)银行应用程序。我在 ubuntu 上,所以我使用 GNOME (GTK+)。我想知道我是否可以用 C/GTK+ 编写我所有的 GUI,然后以某种方式将它链接到我的 C++ 代码。这甚至可能吗?

注意:我不想使用 Qt 或 GTKmm,所以请不要提供这些作为答案。

4

5 回答 5

5

是的,这是一件非常容易的事情。您所要做的就是将一些 C++ 函数公开为“extern C”,以便您的 UI 代码中的事件处理程序和回调可以调用它们。

如果您无法更改现有的 C++ 源代码 - 没问题。只需为您的 UI 编写一个 C++ shim,外部这些函数,然后从那里调用后端函数。

于 2009-05-10T03:14:16.610 回答
1

我不明白为什么不使用适当的外部“C”用法,以便您的 C 代码可以调用 C++。现在,当然,你可能会让自己变得更难,但理论上是合理的。

于 2009-05-10T03:15:31.430 回答
0

像其他人建议您可以为您的 C++ 库编写一个 C 包装器。但你也可以用 C++ 编写前端,即使你只使用 C 子集。如果您不喜欢语言混合,我可以理解,但这是最简单的方法,因为您节省了编写包装器的时间。

于 2009-05-11T07:05:32.267 回答
0

改用wxWidgets怎么样?

于 2009-05-11T07:08:19.407 回答
0

您可以在不使用 GTKmm 的情况下将 GTK/C 代码编译为 C++,并本机使用 C++ 代码。

大多数健全的 C 库都可以从本机 C++ 代码中使用,而 GTK+ 基本上是一个 C 库。

于 2012-11-16T16:40:49.307 回答