Haxe编译器可以将任何C#代码转换为Haxe吗?

时间:2017-04-29 18:34:11

标签: c# haxe

首先,我是Haxe的新手,所以我在这里问超级noob问题,我有2个。

1)我的第一个问题是我知道Haxe编译器可以从Haxe转换为任何其他语言(支持)但是它可以将其他语言(支持)的源代码转换为Haxe吗?

2)如果它可以这样做多少它的能力就像它只能转换几个文件让我们说在C#到Haxe或者如果我给出一个巨大的回购像我们说source code或{{3}它会转换它中的所有东西(你知道这太过要求了,但无论如何)??

3 个答案:

答案 0 :(得分:7)

不,Haxe编译器只向一个方向转换,即:

  

Haxe Code⭢选定目标

对于另一个方向,您需要一个独立于Haxe编译器的外部工具。多年来,创建了几个这样的工具(一些被遗弃):

还有一些用于生成 externs 的工具,而不是编译源到源:

答案 1 :(得分:3)

Gama11的回答是正确的,但是应该添加-net-lib和externs,因为它们允许你在Haxe c#/ mono项目中使用c#/ mono代码。

Haxe可以使用externs(编译器定义)为所有目标使用已编译的代码,以便在Haxe项目中针对同一目标使用,对于大多数目标,您需要手动创建合适的外部程序。但是对于某些目标(Java,C#,Flash),Haxe可以自动生成所需的外部程序,虽然并不总是成功,但它可以使用现有的库相当轻松。我发现这个非常成功的flash并且在Java目标方面取得了不同的成功,但它总是在改进,也许用mono(c#target)尝试过一次或两次。在您的hxml编译器代码中,您可以编写。

envir

你不能使用带有ac#project的swf或jar文件,也不能使用带有flash或java项目的dll,至少不是这种方式,尽管你可以在通过特殊的解析库来定位c ++时使用带有openfl和nme的swf。 / p>

从技术上讲,对于C#,这将在未来的Haxe手册中比我更正式地描述,请参阅github markdown页面的链接以获取完整的详细信息:

" Haxe可以直接加载.NET程序集文件(.DLL)并转换其类型定义以用作Haxe类型。要加载.NET程序集,请使用-net-lib library.dll编译器选项。然后,Haxe将自动解析该汇编文件中定义的类型,并使它们可以作为Haxe类型导入。" - 引用https://github.com/HaxeFoundation/HaxeManual/wiki/Haxe-C%23

答案 2 :(得分:0)

你的意图是什么?你是:

  1. 在针对C#的Haxe项目中尝试用C#代码编写的逻辑?
  2. 在针对非C#的Haxe项目中尝试用C#代码编写的逻辑?
  3. 对于1,您可以使用-net-lib,因此您可以直接在Haxe中使用C#库,因此您根本不需要将C#代码转换为Haxe。

    对于2,你必须手动将C#代码移植到Haxe代码,或者使用Gama11提到的一些工具。 Haxe本身不支持这种转换。