Gre*_*ill 10 emscripten jquery-terminal xtermjs
我有一个简单的程序,请说如下:
#include <stdio.h>
int main()
{
char buf[100];
while (fgets(buf, sizeof(buf), stdin) != NULL) {
printf("You typed: %s", buf);
}
}
Run Code Online (Sandbox Code Playgroud)
我用Emscripten编译了它:
emcc -o hello.html hello.cpp
Run Code Online (Sandbox Code Playgroud)
这给了我一个非常基本的Emscripten生成的网页,其中包含一个简单的程序输出窗口.但是,该fgets()调用会导致浏览器弹出窗口,大概来自prompt().我可以输入内容,结果最终会显示在输出窗口中.这不是一个理想的互动体验.
我想要的是更传统的"控制台"界面,用户可以在终端窗口中交互式输入以向交互式程序提供输入.
我怀疑解决方案可能存在于JQueryTerminal,Hyper或Xterm.js之类的内容中,但我目前还不清楚如何将其中任何一个实际连接到Emscripten编译的程序.
如何为我的Emscripten代码提供"控制台"界面?
这不完全是你想要的,我认为这是不可能的,但这里是异步代码概念的教授,它滥用 C 中的 fetch API 并使用 JavaScript 中的代理来处理来自 C 的消息。你可以将其扩展为具有任何需要在 JS 中完成的异步代码。该示例使用 jQuery Terminal,其行为与示例 C 代码完全相同。
https://gist.github.com/jcubic/87f2b4c5ef567be43796e179ca08c0da
我还在emscripten 存储库中创建了有关异步代码的问题
编辑:有人能够使用这种方法将 R 编程语言编译为 WebAssemly: https: //github.com/georgestagg/webR
| 归档时间: |
|
| 查看次数: |
650 次 |
| 最近记录: |