Можно ли напечатать строку из C ++ с Javascript, используя emscripten?

Как я могу передать char* или же std::string в внешне определенную функцию Javascript, используя emscripten?

В настоящее время, когда я прохожу char* в мой внешне определенный Javascript вместо строки выводится число (указатели?).

Вот код, который я использую:

mylib.js

mergeInto(LibraryManager.library, {
my_js: function(s) {
Module.print(s);
console.log(s);
document.getElementById('voronoi').innerHTML = s;
},
});

main.cpp

int main(int argc, const char * argv[])
{
char* myString = (char*) malloc(10);
strncpy(myString, "SOMETHING", 10);
my_js(myString);
free(myString);
return 0;
}

Результат выводится на консоль при запуске node ./a.out.js:

5260128

0

Решение

Я не очень знаком с emscripten, но этот ответ к другому вопросу, кажется, использовать
Pointer_stringify("...") конвертировать из C строк.

3

Другие решения

Еще один способ сделать это с помощью embind.

Вы можете отослать мой ответ здесь Больше подробностей.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector