0

我们正在尝试将原始数据从 C++ 传递到 Haxe,但我们有很多高音。

我们尝试了这个解决方案http://community.openfl.org/t/passing-bytes-from-c-to-haxe/8046/2但对我们不起作用。

C++

void Clazz::func(unsigned char *data, int length)
{
    XXX_ENTER_HAXE();
    val_call1(m_callback->get(), alloc_array(length));
    XXX_EXIT_HAXE();
}

斧头

function func(result:ByteArray) : Void {
    //Do the callback
}
4

1 回答 1

2

我刚刚学习了 haxe 如何被动地从 C++ 接收字节

C++:

int len = 10;
unsigned char buf[len];
buf[0] = 12;

::Helper_obj* helper = new ::Helper_obj();
printf("Haxe result:%d\n", helper->processBytes(&buf, len));

斧头:

class Helper{
  public function new(){}
  public function processBytes(raw:cpp.Pointer<cpp.Uint8>, len:Int):Int{
    var array<cpp.Uint8> = cpp.NativeArray.toUnmanagedArray(raw, len);
    var bytes:Bytes = Bytes.ofData(array);
    return bytes.get(0);
  }
}

输出:

Haxe result:12
于 2017-06-22T02:21:37.880 回答