さっき決めたブログ

[Nim]WebAssemblyでモジュールのダイナミックリンクを行う

検証3 (Preload Fileを使用しない)

サブモジュールの実行ファイルを --preload-file を用いずに、必要な時にネットからダウンロードしてコンパイルするような方式に変更していきます。
ネットからサブモジュールの実行ファイルをダウンロードするのは、SDLで画像ファイルの動的Load検証を行った時と同じく、emscripten_async_wget_data を使用していきます。
ただし今回はネットからメモリ上に取得したデータをそのまま使用することは出来ないので、一旦Emscriptenの仮想ファイルシステムに保存した後、dlopen を使う方式でやることにします。

プロミス風の実装を行う

少し脱線しますが、emscripten_async_wget_data を使用するので普通に書くとCALLBACK地獄に陥ってしまうため、JavascriptのPromiseのように使えるモジュールを作成しています。

メインモジュールの修整

作成したPromiseモジュールを用いて、メインモジュールを修正します。

nim.cfg から --preload-file のオプションも外しておきます。

実行結果

先ほどと同じ結果ですが、成功です。

実行結果

投稿者プロフィール

KARASU
うーん いろいろ考え中。。。

コメント

コメント取得中...

関連記事

TOPへ