vendredi 16 janvier 2009

Je me lance donc dans l'aventure bloggienne. On verra ce que ça va donner. Pour plus de détails, voir le message de droite.

Mon stage me laissant beaucoup de temps libre, j'ai dépoussiéré quelques vieux projets, dont un avec lequel j'ai le goût d'expérimenter des bindings C++ - JavaScript. V8 étant sortit il n'y a pas très longtemps, je me suis dit: pourquoi pas?

Déjà, la compilation m'a donné du fil à retordre. Il faut en effet utiliser Scons, outil avec lequel j'étais très peu familier. Déjà, j'ai eu besoin de quelques recherches Google pour y arriver. Puisque Scons refusait de fonctionner sous Mac OS X, j'ai finalement lancé Parallels Desktop pour y aller sur Windows. Victoire! Ça fonctionne!

J'obtint alors un gros .lib de près de 70 Mo, que je m'empressait d'inclure à un nouveau projet VC++. Réalisant à quel point cette lib était grosse, je me suis dit qu'il devait bien y avoir une meilleure façon de procéder. Je suis donc retourné dans la doc et j'ai appris qu'on pouvait décider d'obtenir une DLL à la place en entrant un certain paramètre. Tadam! J'ai maintenant une jolie DLL (compilée en release, naturellement) et un petit .lib de 150 Ko. Bon, la compilation de mon projet me donne 10 warnings qui me disent tous que telle ou telle méthode doit avoir une interface de DLL pour les clients d'une certaine classe (warning C4251, pour être plus précis). Si quelqu'un sait de quoi il s'agit, qu'il me le dise. Parce que moi et les DLL, c'est un peu nébuleux.

Mais avant tout, il me fallait évidemment du code pour voir si la configuration de mon IDE était bonne. Alors, naturellement, je suis allé sur le site officiel de V8 (aka quelques pages sur Google Code) et j'ai ramassé le "Hello World". C'était assez simple à comprendre. Je dois dire qu'à vu de nez, comme ça, ça m'a l'air assez propre, comme code.

Résultat des courses: un joli programme qui affiche "Hello World!"

Prochaine étape: faire apparaître un objet C++ comme un objet JS. Ça devrait être assez complexe, vu que la documentation de V8 se résume à un hello world, un "embedding guide" qui ne fait que survoler les fonctionnalités de la bibliothèque, ainsi que deux exemples. Et Google donne peu de résultats sur le sujet. Je risque fort probablement de me baser sur ces exemples pour mes essais.

Donc, si vous voulez vous aussi binder C++ et JavaScript, eh bien, comme disent les Anglophones: Stay tuned!

3 commentaires:

Eric a dit…

Yéééé Etienne

1rst Comment EVA.

Lâche pas!

Andy a dit…

Yéééé Etienne

2nd Comment EVA.

Lâche pas!

Anonyme a dit…

Yéééé Etienne

3rd Comment EVA.

Lâche pas!

...

Non. Sérieusement lâche ça.

Enregistrer un commentaire