У меня есть очень большой массив ArrayBuffer (или TypedArray) в JavaScript, который я хочу передать в функцию emscriptened. Я бы хотел передать необработанные байты без копирования.
Если моя C/С++ функция принимает std::string
, как в:
void processBuffer(std::string const& buffer)
Я могу получить данные, но IIUC, преобразование в std::string
приведет к копированию буфера.
Есть ли способ передать необработанный буфер без копии?
Мой доступ строго к чтению.
Я пробовал:
void processBuffer(const char* str, size_t size);
с настройкой allow_raw_pointers()
в EMSCRIPTEN_BINDINGS
, но это, похоже, не работает.
Что мне не хватает?