haxe - Haxe 可以用于创建库吗?

标签 haxe

我正在考虑使用 Haxe 的跨语言能力,但不确定它是否最适合这项任务。我将编写一个通用库,它应该能够在目标语言中使用并被记录(能够应用像 doxygen 这样的东西。)。换句话说,我想在 Haxe 中编写一个通用库,输出 c++ 代码(以及一旦完成后的 java),并让其他程序员可以访问它。(不仅仅是 C+ 编译器可读)这是这项任务的最佳选择,还是我只为每种语言编写一个库版本会更好?

最佳答案

当然这是可能的,尽管根据选择的平台可能会有一些尴尬。

在 JavaScript、neko 和 Flash 上,生成的代码非常接近原生代码,人们甚至可以在不知道它是在 Haxe 中生成的情况下使用它。

在 PHP 上,恐怕我不太清楚它是如何工作的。但是有一些命名空间黑客有点尴尬,但我认为这些可以通过用手写代码包装库来解决。

在 C++ 上,如果您不介意使用一些样板代码来启用反射,那么它几乎可以正常工作。它有一种处理构造函数的非标准方式,而且你应该非常小心,因为它附加了一个 gc,而且我不知道它处理外部代码持有它不知道的引用的效果如何。

关于新目标 - C# 和 Java 将与 native 代码 100% 互操作。大多数 Haxe 功能都映射到平台的 native 功能中,委托(delegate)除外。但是,如果您不在界面中公开委托(delegate),那也没关系。他们还将生成一些样板代码以在这些平台上启用快速反射,但如果您知道自己在做什么,会有办法禁用它。

关于haxe - Haxe 可以用于创建库吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4457962/

相关文章:

installation - haxelib 与 haxe 一起安装在自定义目录中

actionscript-3 - 什么是 Haxe 的 Adob​​e Flash 符号库?

javascript - 如何指定从中加载字体的url?

haxe - 裸包声明的目的是什么?它有什么作用?

emacs - 如何在 emacs 中显示自动完成选项?

arrays - 动态 Haxe 迭代

arrays - List<Int> 上不允许进行数组访问

javascript - 如何使用haxe创建可重用的js库?

linux - IntelliJ 在 Linux 上显示 "Haxe SDK has no valid root"

html - 图像未出现在 iOS7 中 chrome 的 Canvas 中