4

这种名为 Vala 的新语言据说类似于 C#,据说比 C++ 或 C 更容易,它在 Linux 上使用 GCC 编译器编译成 C。

听起来很棒。现在我想用它来制作一个 PHP 扩展模块,以便可以在 Vala 中制作慢速 PHP 代码并作为函数导入 PHP。

我如何在 Vala 中做到这一点?甚至可能吗?

4

3 回答 3

2

我不知道 Vala,但如果你可以调用本机代码,声明 C 结构并将它们作为指向所述本机代码的指针传递,并定义使用 C 调用约定的函数,那应该是可能的。但是用 C/C++ 做这件事肯定会更容易。

编辑:它的主页

valac 从 Vala 源文件生成 C 源文件和头文件,就像您直接在 C 中编写库或应用程序一样。在 C 应用程序中使用 Vala 库与使用任何其他基于 GObject 的库看起来没有什么不同。不会有 vala 运行时库,应用程序可以使用它们的 tarball 分发生成的 C 代码,因此用户没有额外的运行或构建时依赖项。

所以,虽然这不是确定的,但我会说你可能可以。

于 2010-05-15T03:07:49.470 回答
2

您需要使用或编写(如果不存在)您需要使用的 C 库的 VAPI 文件。这很简单,您只需要查看现有示例: http: //live.gnome.org/Vala/Bindings或简单地:http ://git.gnome.org/browse/vala/tree/vapi

于 2011-01-14T18:07:56.363 回答
2

我创建了如何使用其他语言的 Vala 库的简单示例:

https://github.com/antono/vala-object

通过 GOobject Introspection 自动生成的 vala 库绑定。

https://live.gnome.org/GObjectIntrospection

使用 gobject-for-php 并免费获取绑定!

https://github.com/indeyets/gobject-for-php

于 2012-01-16T19:09:12.920 回答