以下是一个简单的示例,展示了如何使用Emscripten将C++类导出供JavaScript调用:
首先,创建一个名为example.cpp
的C++源文件,其中包含要导出的C++类及其方法:
// example.cpp
class MyClass {
public:
int add(int a, int b) {
return a + b;
}
};
EMSCRIPTEN_BINDINGS(my_module) {
class_<MyClass>("MyClass")
.constructor<>()
.function("add", &MyClass::add);
}
接下来,使用Emscripten编译器将C++代码转换为可在Web浏览器中运行的JavaScript代码。运行以下命令:
emcc example.cpp -s WASM=1 -s EXPORTED_RUNTIME_METHODS='["cwrap"]' -o example.js
这将生成一个名为example.js
的JavaScript文件。
现在,在HTML页面中引入生成的JavaScript文件,并使用导出的C++类和方法:
<!-- index.html -->
<!DOCTYPE html>
<html>
<head>
<script src="example.js"></script>
</head>
<body>
<script>
// 创建C++对象
var myObject = new Module.MyClass();
// 调用导出的方法
var result = myObject.add(2, 3);
console.log(result); // 输出: 5
</script>
</body>
</html>
在浏览器中打开该HTML文件,你应该能够看到控制台输出结果为5,这表明成功导出并调用了C++类的方法。
请注意,这只是一个简单示例,你可以根据自己的需求来定义更复杂的C++类和导出方法。另外,Emscripten还提供了丰富的功能和选项,可进一步定制导出过程。详细信息可以参考Emscripten的文档。
内容由零声教学AI助手提供,问题来源于学员提问