簡體   English   中英

Haxe 編譯器可以將任何 C# 代碼轉換為 Haxe 嗎?

[英]Can Haxe compiler convert any C# code to Haxe?

首先,我是 Haxe 的超級新手,所以我在這里問超級菜鳥問題,我有 2 個。

1) 我的第一個問題是我知道 Haxe 編譯器可以從 Haxe 轉換為任何其他語言(支持),但它可以將其他語言(支持)的源代碼轉換為 Haxe 嗎?

2)如果它可以這樣做,它的功能有多少,比如它只能將幾個文件轉換為 C# 到 Haxe,或者如果我提供一個巨大的 repo,比如讓我們說這個https://github.com/dotnet/corefxhttps ://github.com/tensorflow/tensorflow它將轉換其中的所有內容(是的,我知道這要求太多了,但無論如何)??

不,Haxe 編譯器只向一個方向轉譯,即:

Haxe 代碼 ⭢ 選定的目標

另一方面,您需要一個獨立於 Haxe 編譯器的外部工具。 多年來,創建了幾個這樣的工具(一些被放棄了):

還有一些用於生成externs 的工具,而不是編譯源到源:

Gama11 答案是正確的,但應該添加 -net-lib 和 externs,因為它們確實允許您在 Haxe c#/mono 項目中使用 c#/mono 代碼。

Haxe 可以使用 externs(編譯器定義)為所有目標使用編譯代碼,以便在您的 Haxe 項目中為同一目標使用,對於大多數目標,您需要手動創建合適的 externs。 然而,對於某些目標(Java、C#、Flash),Haxe 可以自動生成所需的外部文件,盡管並不總是成功,但它可以使使用現有庫變得相當輕松。 我發現這在 flash 上非常成功,在 Java target 上也取得了不同的成功,但它總是在改進,也許在 mono ( c# target ) 上嘗試過一兩次。 在您的 hxml 編譯器代碼中,您可以編寫。

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

您不能將 aa swf 或 jar 文件與 ac# 項目一起使用,也不能將 dll 與 flash 或 java 項目一起使用,至少不是這種方式,盡管在通過特殊解析庫定位 c++ 時,您可以使用帶有 openfl 和 nme 的 swf。

從技術上講,對於 C#,這將在未來的 Haxe 手冊中比我更正式地描述,有關完整詳細信息,請參閱 github 降價頁面的鏈接:

“Haxe 可以直接加載 .NET 程序集文件 (.DLL) 並轉換其類型定義以用作 Haxe 類型。要加載 .NET 程序集,請使用 -net-lib library.dll 編譯器選項。然后 Haxe 將自動解析在該程序集文件並使它們可作為 Haxe 類型導入。” - 引用https://github.com/HaxeFoundation/HaxeManual/wiki/Haxe-C%23

你的意圖是什么? 你是:

  1. 在面向 C# 的 Haxe 項目中嘗試使用 C# 代碼編寫的邏輯?
  2. 嘗試在面向非 C# 的 Haxe 項目中使用 C# 代碼編寫的邏輯?

對於 1,您可以使用-net-lib以便您可以直接在 Haxe 中使用 C# 庫,因此您根本不需要將 C# 代碼轉換為 Haxe。

對於 2,您必須手動將 C# 代碼移植到 Haxe 代碼,或者使用 Gama11 提到的一些工具。 Haxe 本身不支持這種轉換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM