Как вернуть строку из функции emscripten / webassembly для вызывающей стороны - PullRequest
0 голосов
/ 01 марта 2019

Попытка следовать учебнику emscripten, передача параметров между вызовами C в emscripten, но правильно передаются только числа, а не строки.Как вернуть строку обратно в C из вызова библиотеки js?

test.c:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <emscripten.h>
extern char *getText(void);

int main() {
    printf(getText());
    return 0;
}

mylib.js:

mergeInto(LibraryManager.library, {
    getText: function() {
        return "a test string";
    }
});

команда построения:

emcc test.c -o test.html --js-library mylib.js

Вывод, который я ожидаю увидеть, является «тестовой строкой», но на самом деле я вижу «emcc»

Я много смотрел в стеке потока и в других местах, но естья ничего не мог найти о возврате строковых значений из JS в C, только о передаче их в JS из C, так что это не дубликат любого другого вопроса, который я мог найти.

Что дает?

...