在 emscripten C++ 中,我有:
我可以从JS中调用getLength()和getPtr(),但我不知道如何让JS将其视为ArrayBuffer以便下载为Blob。
我该如何将缓冲区数据以一种形式传递给JS,以便我可以使用类似于https://github.com/kennethjiang/js-file-download/blob/master/file-download.js的代码进行下载?
class MyClass {
public:
MyClass() {}
std::shared_ptr<std::vector<uint8_t>> buffer;
int getPtr() {
return (int)(buffer->data());
}
int getLength() {
return buffer->size();
}
};
EMSCRIPTEN_BINDINGS() {
class_<MyClass>("MyClass").constructor()
.function("getLength",&MyClass::getLength)
.function("getPtr",&MyClass::getPtr,
allow_raw_pointers());
}
我可以从JS中调用getLength()和getPtr(),但我不知道如何让JS将其视为ArrayBuffer以便下载为Blob。
我该如何将缓冲区数据以一种形式传递给JS,以便我可以使用类似于https://github.com/kennethjiang/js-file-download/blob/master/file-download.js的代码进行下载?
std::vector<uint8_t> buffer
转换成 JS 中的 ArrayBuffer 吗? - Bumsik Kim