2017-03-22 16 views
0

私もhaxelangにこの質問を投稿here解決し--runと非インポートされたパッケージをインスタンス化し、--macroが含ま

私は--runコマンドを使用してきた、といくつかのパッケージが含まれるようにしようとしている 使用して、それを実行しているとき--macroは次のように含まれます:

haxe -lib nape --macro include('nape.geom.Vec2') --run Main 'nape.geom.Vec2' 

、その後Type.resolveを使用するので、私はそうのようなType.createInstanceでそれらのインスタンスを作成することができます

class Main 
{ 
    static function main() 
    { 
    trace("hello", Sys.args()); 
    var c = Type.resolveClass(Sys.args()[0]); 
    trace(c); 
    Type.createInstance(c, []); 
    } 
} 
また、私は、このコマンドで--interp使用することを試みた

haxe -lib nape --macro include('nape.geom.Vec2') -main Main --interp -D nape.geom.Vec2 

彼らは、実行、トレース、および--runために期待されるよう対応するために、小さなコード変更で(Sys.argsを受ける「の両方 - D nape.geom.Vec2 'for interp)、resolveClassは常にnullを返します。したがって、エラーなしでcreatInstanceに渡すことはできません。

私は私が間違っているのは何

安定haXeの3.4.2を使用していますか?これは--runコマンドまたは--interpコマンドで可能ですか?

Idは本当にこれらの機能

答えて

1

の一部にいくつかのより完全なドキュメントを愛する「を含む」マクロはパッケージではなく、クラスを含んでいます。

それはで動作します:

haxe -lib nape --macro include('nape.geom') --run Main 'nape.geom.Vec2' 

http://api.haxe.org/haxe/macro/Compiler.html#include

+0

は、そのコマンドの実行を参照してください、それはまだクラス型にnullを返します。何か案は? – ediblebird

+0

@ediblebird、[dead code elimination](https://haxe.org/manual/cr-dce.html)おそらく?おそらく '-D dce-debug'でコンパイルすると役に立つ情報が得られます。単一のクラスの場合は、それらをコマンドライン/ build.hxmlに直接含めることもできます: 'haxe -lib nape nape.geom.Vec2 --run Main 'nape.geom.Vec2'' –

関連する問題