working example of how to use jsctypes to include native code in a module

This commit is contained in:
Lloyd Hilaiel 2011-02-17 14:46:52 -07:00
Родитель ce1e371ea7
Коммит 2f9a7211e2
3 изменённых файлов: 29 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1,5 @@
const char * gettaStringFromNativeCode(void)
{
return "This string has come a loooong way";
}

Просмотреть файл

@ -0,0 +1,20 @@
const {Cc,Ci,Cm,Cr,Cu} = require("chrome");
const path = require("path");
/* Load JS Ctypes Javascript module */
ctypes = {};
Cu.import("resource://gre/modules/ctypes.jsm", ctypes);
ctypes = ctypes.ctypes;
exports.getString = function() {
let pathToLib = require("url").toFilename(__url__);
pathToLib = path.join(path.dirname(pathToLib), 'libmylib.dylib');
let lib = ctypes.open(pathToLib);
let getStr = lib.declare("gettaStringFromNativeCode",
ctypes.default_abi,
ctypes.char.ptr);
let rv = getStr().readString();
lib.close();
return rv;
};

4
toph/index.html Normal file
Просмотреть файл

@ -0,0 +1,4 @@
<script>
const mylib = require('jsctypes/mylib');
console.log(mylib.getString());
</script>