That this doesn't fail and instead calls the other overload is an odd side effect of the way the binding library determines the minimum number of parameters that a function can be called with. Since you can actually call the native method with no parameters, it works.

I've been thinking of making it so that if you specify a type for the function/method, it'll accept that as the minimum number of parameters and not try to figure it out for itself. That probably wouldn't mess anything up and would make things behave more like you'd expect.

Abstract classes... I honestly hadn't taken that into account It'll complain that it can't be instantiated and ask you to bind a constructor, won't it? Hm. Wonder if it's possible to check if a class is abstract in D1, and if so, make it so that check happens at runtime instead of compile time..

I'd like to add support arrays of wrapped classes and structs, but that might involve integrating the binding library into the native API a little more tightly, and I'm not sure how far I want to take that.

I'd like to add support arrays of wrapped classes and structs, but that might involve integrating the binding library into the native API a little more tightly, and I'm not sure how far I want to take that.

Hm, ok.. is there any workaround for that? I'd really need to pass arrays of wrapped classes...

You'd have to modify the ToDType and ToMiniDType functions in minid.bind, and they're private. But to add support for arrays of wrapped classes, I'll be modifying that anyway, so you might as well not mess with it XD Unless you can figure it out and want to contribute some code!