私はNekoモジュールで遊んでいましたが、私はいくつかの矛盾した動作をしていると思います。Haxeで「物理的に等しい」とはどういう意味ですか?
var funcs = 0;
var objs = 0;
for (i in 0...m.globalsCount())
{
var obj:Dynamic = m.getGlobal(i);
if (Reflect.compareMethods(obj, init))
trace("matched");
if (Reflect.isFunction(obj))
funcs++;
else if (Reflect.isObject(obj))
objs++;
}
trace('Functions: $funcs');
trace('Objects: $objs');
上記のコードでは、初めて実行すると合計4487の機能が得られます。私は機能を削除した場合は、再構築して実行し、私が期待される4486.
私はobj
init
は、私がメインファイルで宣言された関数があるinit
、と比較するcompareMethods
比較を追加取得しますが、トレースが出力になることはありません。
私はcompareMethods
関数のコードヒントを見て、次のような用語を見つけました:if 'f1' and the 'f2' are **physically** equal
ここでは、それらは両方とも関数であり、Haxeマニュアルで物理的機能について何も言及していません。だから私は本当に2つの部分の質問があります。
物理的な機能とは何ですか?また、上記のようにトレース結果を達成するにはどうすればよいですか?前もって感謝します。
はこの答えを知らないが、私はあなたの目的は、コードにあるものたいを知っていますかは、あなたの上で掲載スニペット。ケアを共有する? – bguiz
私は外部Nekoモジュールから関数を呼び出す方法を使用して、再コンパイルせずに既存のアプリケーションを変更できるようにしたいと考えていました。ネイティブターゲット用のndll/dllファイルの必要性を無効にしました。 – tienery