You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
○ [技術][C++] V8 から OLE オートメーション せっかくアプリへの組み込み前提なのだから、OS のネイティブな機能を使ってみたくなるのが人情というもの…。 というわけで、最近は OLE オートメーションに対応したオブジェクトを Javascript からいじるためにごそごそやってます。これができると Ajax のコア機能がアプリに組み込めたりして。
addonを書く上で必要なことは基本ここに書いてあるんだけど今のバージョン(v0.23)だと若干便利マクロが増えてるみたい。 今回は渡された文字列とカウンタを表示するだけの簡単なクラスを作った。 JavaScriptのmoduleで書くとこんな感じ function Echo(){ this.i = 0 } Echo.prototype.print = function(s){ console.log( s + ' ' + this.i ); this.i++; } exports.Echo = Echo;同じことをC++のaddonで書くと以下のような感じ ※重要そうなところはコメントで。 echo.h: #ifndef _ECHO_ #define _ECHO_ #include <node.h> #include <v8.h> using namespace v8; using na
I want to have access in javascript to my c++ function with google v8 engine and return result according arguments giving in my javascript function. My javascript function is as follow: var result = MyFc( { 'stringData':'abc', 'numberData':123, 'arrData':[1,2,3], 'objData':{'a':true,'b':false,'c':true}, 'callback':function(){} } ); I used global->Set(v8::String::New("myFc"), v8::FunctionTemplate::
プリミティブな値を引数で受けとる場合よりもやや面倒。JavaScriptの仕様上どんな値や型でも受けとってしまうので、C++側のチェックコードがどんどん増えていく。 動作確認用のコードがこうだとする var Test1 = require('./build/Release/Test1'); Test1.giveMeObject({ option1: 'This is config option!!', option2: true }); Test1.giveMeArray([1,2,3,4,5,6]); モジュールのコードはこんな感じ #include <node.h> #include <v8.h> #include <iostream> using namespace v8; Handle<Value> HandleObjectMethod(const Arguments& args)
Google V8 JavaScript Engine を使ったゲーム開発 • • • • • • • • • • • • • • • function func1(n) { var c = 0; while(c < n) c = c + 1; } function func2(n) { var r = 0; var c = 0; while(c < n) { if(c % 2 == 0) r = r + c * 2; else r = r - c * 2; c = c + 1; } return r; } function func3(n) { var d = {}; var c = 0, h = n / 2; while (c < n) { d[c-h] = c; c = c + 1; } } function func4(n) { if (n<2) return 1; return
最近どのブログでも node.js ばかりでもう飽き飽きしてる皆さんこんばんわ。 node.js 面白いですよね!ェ node.js ってアプリケーションを作る側(つまりライブラリを使う側)からすると、Web周りの便利なライブラリが既に色々あって、そのライブラリが一体どうやって動いてるのか気にすることってあんまり無いかと思います。 pure javascriptな物ならばコードを読むのは簡単です。ただしやれる事に限りがあります。node.js はGoogle製のJavaScript Engineであるv8をベースに作られているのですが、このv8はアプリケーションに組み込むのに適した構成になっていて、関数テンプレートやインスタンス、プロトタイプという各機能がC++のクラステンプレートで上手く表現出来ているライブラリです。Spidermonkeyも確かに扱うのは簡単なのですが、僕からすると若干
C++ Advent Calendar です。 google の V8 engine を 組み込んで簡易スクリプトにしてしまおうという話です。 C++の言語仕様や boost の話は超絶詳しい人たちがされているので、誰もやらなそうな ぬるいいい加減な話をします。 #間違ってたら突っ込みよろしく!! なぜ V8? Lua ぢゃだめなんですか? C++ から呼び出しやすい 組み込み言語として、 Luaがあります。 しかし、 Luaはコメントが -- から始まったり、 〜end と、 C / C++ に組み込みやすいスクリプト言語なのになぜか pascal チックな文法?という不思議なところがあります。 やはり、 C++ ユーザとしてはコメントは // で書きたいし、ブロックは { } でやりたいですよね (y/Yes) そんなところに、 google の V8 engine があります。 C+
(基本だらだら進行で、過程を追記していきます) Google Chrome が出ました Google Chrome で JavaScript エンジンが刷新されたということで、その JavaScript エンジン V8 についていろいろ調べてみようと思います。 Issues - v8 - V8 JavaScript Engine - Monorail ビルドしてみる まず、 svn からソースを持ってくる $ svn co http://v8.googlecode.com/svn/trunk/ v8おおお。以外と少ない で、 trunk の中に入って $ cd v8scons でビルド(scons が入ってない人は、 port や apt-get で入れる) $ scons scons: Reading SConscript files ... scons: done reading SC
なぜ CodeRepos に登録しないのか べつだん深意や確執があるわけじゃなくて,華々しく 500 人めのコミッタになろうと思ったら,現在 461 人だったからです。ということで 38 人の方々,コミッタ登録してください ;P 冗談はともかくおまえの書いた汚いコードを早く添削したいんじゃという方がいらっしゃったら,代理でいれといて構いません。 Acme::JavaScript::V8(Perl XS)を書くときに苦労したこと New ていうのが XS での define 値だったので困りました。V8 側だと,new / delete するんじゃなくて Class::New() する流儀なので。 ですから,#undef New してあります。他のマクロで使われていたらマズいなぁと思いますが,動いたからよしとします。 エンベッダーズガイド V8 JavaScript engine を読む s
V8 の Embedder's Guide を見ると、C/C++ の関数を Javascript から使えるようにするやり方が解説されています。 Accessor のセクションにある Point の例をちょっと拡張すれば C/C++ のオブジェクトを Javascript のオブジェクトとして見せることができるようになりそうですが、オブジェクトのインスタンスを C++ コードとして生成していたりするのでちょっと gap があります。 ここでは、Javascript のオブジェクトに対して C/C++ のオブジェクト(のインスタンス)が対応して、メモリの解放も GC にしたがってよしなにされる、というところを目標にします。 Internal Field の利用 基本的には Embedder's Guide のとおりです: Javascript のクラス定義というのは、コンストラクタ関数を基軸
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く