
- WebAssembly 教程
- WebAssembly - 主頁
- WebAssembly - 概述
- WebAssembly - 簡介
- WebAssembly - WASM
- WebAssembly - 安裝
- WebAssembly - 編譯到 WASM 的工具
- WebAssembly - 程式結構
- WebAssembly - JavaScript
- WebAssembly - JavaScript API
- WebAssembly - 在 Firefox 中除錯 WASM
- WebAssembly - “你好,世界”
- WebAssembly - 模組
- WebAssembly - 驗證
- WebAssembly - 文字格式
- WebAssembly - 將 WAT 轉換為 WASM
- WebAssembly - 動態連結
- WebAssembly - 安全性
- WebAssembly - 使用 C
- WebAssembly - 使用 C++
- WebAssembly - 使用 Rust
- WebAssembly - 使用 Go
- WebAssembly - 使用 Nodejs
- WebAssembly - 示例
- WebAssembly 實用資源
- WebAssembly - 快速指南
- WebAssembly - 實用資源
- WebAssembly - 討論
WebAssembly - 使用 C++
在本章中,我們將把一個簡單的 C++ 程式編譯為 javascript,並在瀏覽器中執行該程式。
示例
C++ 程式 - 反轉給定的數字。
#include <iostream> int reversenumber(int n) { int reverse=0, rem; while(n!=0) { rem=n%10; reverse=reverse*10+rem; n/=10; } return reverse; }
我們在 wa/ 資料夾中安裝了 emsdk。在同一資料夾中,建立另一個資料夾 cprog/ 並將上述程式碼儲存為 reverse.cpp。
我們已經在上一章中安裝了 emsdk。在這裡,我們將使用 emsdk 來編譯上面的 c 程式碼。
如下所示,在命令提示符中編譯 test.c −
emcc reverse.cpp -s STANDALONE_WASM –o reverse.wasm
emcc 命令負責編譯程式碼並給你 .wasm 程式碼。
示例 − reversenumber.html
<!doctype html> <html> <head> <meta charset="utf-8"> <title>WebAssembly Reverse Number</title> <style> div { font-size : 30px; text-align : center; color:orange; } </style> </head> <body> <div id="textcontent"></div> <script> let reverse; fetch("reverse.wasm") .then(bytes => bytes.arrayBuffer()) .then(mod => WebAssembly.compile(mod)) .then(module => {return new WebAssembly.Instance(module) }) .then(instance => { console.log(instance); reverse = instance.exports._Z13reversenumberi(1439898); console.log("The reverse of 1439898 = " +reverse); document.getElementById("textcontent") .innerHTML = "The reverse of 1439898 = " +reverse; }); </script> </body> </html>
輸出
輸出如下 −

廣告