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

问题描述 投票:3回答:3

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

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

2)如果它可以这样做多少它的能力就像它只能转换几个文件让我们说在C#到Haxe或者如果我给一个巨大的回购像让我们说这个https://github.com/dotnet/corefxhttps://github.com/tensorflow/tensorflow它会转换它里面的一切(你知道吗)这个问题太多了,但无论如何)??

c# haxe
3个回答
7
投票

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

HaxeCode⭢选定目标

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

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


3
投票

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

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

-swf-lib my.swf
-java-lib my.jar
-net-lib my.dll

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

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

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


0
投票

你的意图是什么?你是:

  1. 在针对C#的Haxe项目中尝试使用C#代码编写的逻辑?
  2. 在针对非C#的Haxe项目中尝试使用C#代码编写的逻辑?

对于1,您可以使用-net-lib,因此您可以直接在Haxe中使用C#库,因此您根本不需要将C#代码转换为Haxe。

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

© www.soinside.com 2019 - 2024. All rights reserved.