Envoyé par : bigboy2g15
Date : 10/06/2007 10:57
Bonjour,
J'ai une fonction décrite comme ceci dans l'idl :
boolean test(in string entree, out string sortie);
Le code c++ l'implémentant est le suivant :
NS_IMETHODIMP nsPlop::Test(const char *entree, char **sortie, PRBool *_retval) { char * chaine = (char*)nsMemory::Alloc(sizeof(char)* 50); strcpy(chaine,"maChaine"); *sortie = (char*)nsMemory::Alloc(sizeof(char)* 50); strcpy(*sortie , chaine); *_retval = true; return NS_OK; }
Le code JS l'appelant est :
var entree='chaineEntree'; var sortie; var res = obj.test(entree,sortie);
Or, j'obtiens l'erreur :
"'Out' argument must be an object" nsresult: "0x80570002 (NS_ERROR_XPC_NEED_OUT_OBJECT)"
C'est une erreur que je n'ai trouvé que sur 2 pages sur le net, et dans aucun cas une explication n'est fournie.
L'argument OUT est bien existant à la fois dans le c++ et le js, je ne vois donc pas du tout d'où vient le problème, le problème ne venant pas du "obj", d'autre fonction avec des renvois d'une variable en _retval fonctionne parfaitement. Comme j'ai besoin de renvoyer plusieurs variables ( ici ce n'est qu'un exemple ), j'ai besoin d'utiliser le retour par paramètres. J'ai essayé en remplaçant out par inout, même résultat.
Merci d'avance pour toutes suggestions !
Envoyé par : Paul Rouget
Date : 11/06/2007 11:56
var entree='chaineEntree'; var sortie = {value: null}; var res = obj.test(entree,sortie); alert(sortie.value);
Envoyé par : bigboy2g15
Date : 14/06/2007 15:53
Merci, comme ça cela marche.
Bizarre comme le JavaScript peu parfois être permissif, et d'autre fois non.
( Sinon, si d'autre ont ce problème, il faut faire sortie.value pour accéder à la valeur. Tout bête, mais on sait jamais ! )
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.