2016-12-11 3 views
2

私はpreamble.jsemscriptenでmakeSetValue、makeGetValue、maybeExportがどのように機能していますか?

、例えば、多くのスクリプトでmakeSetValuemakeGetValuemaybeExportを参照してください。しかし、この機能は、ドキュメントに記載されていないので、私はそれらを使用する方法がわからない、または彼らは本当にどのように動作しますか。

例コード:

function writeArrayToMemory(array, buffer) { 
    for (var i = 0; i < array.length; i++) { 
    {{{ makeSetValue('buffer++', 0, 'array[i]', 'i8') }}}; 
    } 
} 

{{{ maybeExport('writeArrayToMemory') }}} 

答えて

2

{{{ ... }}}は、それがコンパイル時に抽出され、マクロです。 emcc --js-library lib_foo.js main.c ...のような--js-libraryオプションを使用してください。

https://github.com/kripken/emscripten/blob/master/src/parseTools.js

lib_foo.js:

mergeInto(LibraryManager.library, { 
    writeArrayToMemory: function(array, buffer) { 
    for (var i = 0; i < array.length; i++) { 
     {{{ makeSetValue('buffer++', 0, 'array[i]', 'i8') }}}; 
    } 
    } 
}); 
関連する問題