gpt4 book ai didi

javascript - 我如何使用 C++ 通过 Emscripten 在 JavaScript 中分配变量并将它们保持在范围内?

转载 作者:搜寻专家 更新时间:2023-10-31 02:13:46 24 4
gpt4 key购买 nike

我正在尝试使用 emscripten 和 c++ 进行一些库测试。我需要让一些 JavaScript 变量在 C++ 调用之间保持不变,但我一直无法弄清楚如何去做。

我认为这要么是我缺少的简单东西,要么就是不可能。这是一个没有任何其他运行的独立程序。以下是一个最小示例:

#include <emscripten.h>

int main() {
//this works and prints 1
EM_ASM(
var x = 1;
console.log(x);
);
//this throws an error 'x is not defined'
EM_ASM(
console.log(x);
);
return 0;
}

我使用以下命令编译并运行代码:

emcc main.cpp
node a.out.js

第一次调用的输出是正确的,但第二次调用抛出一个未定义的错误。我需要一些方法来将此变量保留在调用之间的范围内,以便我可以使用它。

有什么帮助吗?谢谢。

最佳答案

您可以在声明 x 之前删除 var:

#include <emscripten.h>

int main() {
EM_ASM(
x = 1;
console.log(x);
);
EM_ASM(
console.log(x);
);
return 0;
}

这似乎适用于 emcc v1.35

[编辑]

请参阅 Clint 的解释和更好的答案

关于javascript - 我如何使用 C++ 通过 Emscripten 在 JavaScript 中分配变量并将它们保持在范围内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40878747/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com