一种将 Dart 中的字节数据转换为 C++ 中的无符号字符*的有效方法?
An efficient way to convert ByteData in Dart to unsigned char* in C++?
我是这样做的:
Pointer<Uint8> _byteDataToPointer(ByteData byteData) {
final uint8List = byteData.buffer.asUint8List();
final length = uint8List.lengthInBytes;
final result = allocate<Uint8>(count: length);
for (var i = 0; i < length; ++i) {
result[i] = uint8List[i];
}
return result;
}
有没有更有效的方法像JNInv::GetByteArrayRegion在JNI中?
谢谢!
这总是会涉及副本,那么有没有比你的 for 循环更有效的东西呢?或。
分配Uint8Pointer
后,使用asTypedList
将其转换为Uint8List
。现在,您可以访问其复制原语,例如setAll
和setRange
从源复制到目标。
ByteData
的原始来源是什么?如果你事先知道大小,你能不能先分配Uint8Pointer ,转换为类型化数据,然后直接读取它?
相关文章:
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 将无符号char*转换为std::istream*C++
- 如何在C++中将一个无符号的 int 转换为两个无符号的短裤?
- 从矢量<无符号字符>转换为字符* 包括垃圾数据
- 如何理解将半精度指针转换为无符号长指针和相关的内存对齐
- C++中无符号字符溢出
- 使用无符号字符数组有效存储内存
- 如何打印boost多精度128位无符号整数
- C++模板函数,用于比较任何无符号整数和有符号整数
- 在 std::无符号字符的向量处存储 int 的十六进制表示形式
- 获取隐式转换溢出从无符号到已签名的警告
- 如何在保持其值的同时将 c++ 无符号字符变量转换为 char 变量
- 从 std::vector<无符号字符>切片中提取 int?
- 是什么导致了这种使用三进制而不是短整型的有符号int到无符号int转换
- 无法在 Arduino 中uint8_t数组转换为无符号长整型数组
- 将无符号字符的向量存储在数组中会给我 std::bad_alloc
- 使用 fopen 打开 .pak 文件并使该文件应用于 const 无符号字符* (C++)
- C4018:类内有符号、无符号不匹配
- C++无符号短裤的划分导致 int
- 库特无符号字符