Forums : XPCom

Aller à la discussion :  Plus récente Plus ancienne

# Callback c++ javascript

Envoyé par : Utilisateur anonyme

Date : 19/02/2006 19:50

bonjour,

Je découvre les composants XPcom, et j'ai une question très simple.

Avec javascript je peux appeler une méthode d'une classe C++, mais... est-il possible d'appeler une méthode javascript depuis le C++? Ceci serait tres utile pour le notifier le javascript d'un évènement.

Merci.

# Re: Callback c++ javascript

Envoyé par : Utilisateur anonyme

Date : 20/02/2006 00:40

J'ai trouvé quelques élèments de réponse :

# Re: Callback c++ javascript

Envoyé par : laurentj

Date : 20/02/2006 11:01

Avec javascript je peux appeler une méthode d'une classe C++, mis...

est-il possible d'appeler une méthode javascript depuis le C++?

oui bien sûr. C'est le but de XPCOM : chaque composant peut être développé dans le langage que l'on veut (C++, JS, Python, Java...). Il suffit qu'il se déclare comme composant XPCOM, de déclarer les interfaces qu'il implémente et le tour est joué. Tout composant XPCOM peut appeler un autre composant sans qu'il ait d'ailleurs aucune idée de comment il est développé ni en quel langage. Il y a une "couche" (appelée binding XPCOM) qui se charge de traduire les appels d'un langage à un autre.

C'est le coté "magique" d'XPCOM ;-)

# Re: Callback c++ javascript

Envoyé par : Bilock

Date : 15/03/2006 16:32

Merci laurentj

Ce que je ne savais pas à l'époque de ma question, c'est qu'il est possible de définir ou redefinir un xpcom en local dans mon .js (sous réserve que le xpt contienne sa définition). Par ce biais, je peux définir le comportement de mon xpcom en local, et traiter l'appel du c++ comme je le souhaite.

J'ai résolue mon problème en fouillant dans les sources de jabxpcom qui est un bon exemple bourré de callback utilisant libsigc++. (peu de commentaires malheureusement)

C'est vrai qu'il est magique ce format xpcom ;)

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.