我们正在尝试将原始数据从C ++传递给Haxe,但我们有很多三倍。
我们尝试了这个解决方案http://community.openfl.org/t/passing-bytes-from-c-to-haxe/8046/2但是没有为我们工作。
C ++
'' in row
HAXE
void Clazz::func(unsigned char *data, int length)
{
XXX_ENTER_HAXE();
val_call1(m_callback->get(), alloc_array(length));
XXX_EXIT_HAXE();
}
答案 0 :(得分:1)
我刚学习haxe如何被动地从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