Car*_*ara 5 emscripten webassembly
尝试遵循 emscripten 教程,在对 emscripten 的 C 调用之间传递参数,但仅正确传递数字,而不传递字符串。如何从 js 库调用将字符串返回到 C?
测试.c:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <emscripten.h>
extern char *getText(void);
int main() {
printf(getText());
return 0;
}
Run Code Online (Sandbox Code Playgroud)
mylib.js:
mergeInto(LibraryManager.library, {
getText: function() {
return "a test string";
}
});
Run Code Online (Sandbox Code Playgroud)
构建命令:
emcc test.c -o test.html --js-library mylib.js
Run Code Online (Sandbox Code Playgroud)
我期望看到的输出是“测试字符串”,但我实际看到的是“emcc”
我在 stackoverflow 和其他地方进行了广泛的查找,但是我找不到任何关于将字符串值从 JS 返回到 C 的信息,只能找到将它们从 C 传递到 JS 的信息,所以这不是我能找到的任何其他问题的重复。
是什么赋予了?
小智 0
这可能不是 OP 正在寻找的答案,但是您是否考虑过将公开的函数包装在 C++ 中来规避该问题?const char*需要一些智能包装才能完美地处理 JS 字符串。如果您将这些函数包装在 C++ 中并返回,std::string则优点可能大于缺点。
| 归档时间: |
|
| 查看次数: |
1837 次 |
| 最近记录: |