亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Emscripten:自定義生成的 js,以便以自定義方式加載 .wasm 文件

Emscripten:自定義生成的 js,以便以自定義方式加載 .wasm 文件

一只名叫tom的貓 2022-08-04 10:27:05
通過使用以下選項進行編譯,emcc -s WASM=1 main.cpp -o index.jsemscripten 生成一個 、 和一個 js 包裝器 。js 包裝器加載位于同一目錄中的文件,并在瀏覽器中運行時使用。index.wasmindex.js.wasmXMLHttpRequest那么,如果我需要手動加載文件,該怎么辦?加載部分在包裝器中似乎是硬編碼的。.wasm以下是我需要這個的一些情況:我需要從另一個網址(例如從CDN)提供文件。.wasm下載文件的 url 是動態生成的。.wasm代碼在不允許的沙箱中運行,只有一個像 這樣的API。XMLHttpRequestgetMyData('some_file')我需要將所有文件嵌入為base64字符串。我知道我只能生成文件,通過.wasmemcc -s WASM=1 main.cpp -o index.wasm但是后來我失去了包裝器,這在使用一些描述性API(如SDL和GLES)時并不容易。
查看完整描述

1 回答

?
手掌心

TA貢獻1942條經驗 獲得超3個贊

AFIK,JS包裝器調用fetch()而不是XHR。如果可用,可以使用服務工作線程來攔截該請求并返回所需的任何內容。

您還可以修改Emscripten源代碼(我有v1.39.13)以重寫默認加載行為。在 文件中,根據自己的喜好修改函數 getBinaryPromise() 和 getBinary(),然后構建 ,以便在 WASM JS 包裝器中具有自定義加載行為。$EMSDK/upstream/emscripten/src/preamble.jsemcc


查看完整回答
反對 回復 2022-08-04
  • 1 回答
  • 0 關注
  • 331 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號