Forums : XPCom

Aller à la discussion :  Plus récente Plus ancienne

# Plugin Firefox et string de retour

Envoyé par : toolz

Date : 28/03/2008 14:58

salut,

j'ai le problème indiqué dans la FAQ :

http://www.mozilla.org/scriptable/faq.html#i9

plus précisément le problème 9 : 9) How do I make 'out string' work right? Why does my implementation of this crash when called from JavaScript?

donc j'ai un fichier idl :

interface nsIStuff : nsISupports {

string getVersion();

};

qui me permet de récupérer une chaine de caractères

la blague c'est qu'un code C/C++ standard pour renseigner la valeur de retour foire, genre :

//--------------------------------------------------------------------------------------------------------------

NS_IMETHODIMP nsStuff::GetVersion( char ** _retval )

{

CString sValue = mPlugin->getVersion();
*_retval = _strdup( CT2A( sValue ) );
return NS_OK;

}

donc pour corriger le problème la FAQ nous dit de taper :

  • _retval = ( char * ) nsMemory::Clone( sValue, sizeof( char ) * ( sValue.GetLength() + 1 ) );

oki doki, je fais, je linke sur xpcom.lib et xpcomglue_s.lib

et là, tataaa :

xpcomglue_s.lib(nsMemory.obj) : error LNK2019: unresolved external symbol impPR_smprintf_free referenced in function "public: static unsigned int __cdecl nsMemory::HeapMinimize(int)" (?HeapMinimize@nsMemory@@SAIH@Z)

1>xpcomglue_s.lib(nsMemory.obj) : error LNK2019: unresolved external symbol impPR_smprintf referenced in function "public: static unsigned int __cdecl nsMemory::HeapMinimize(int)" (?HeapMinimize@nsMemory@@SAIH@Z)

ça a l'air de rien mais je m'en sors pô, donc je veux bieng de l'aide merci :o

# Re: Plugin Firefox et string de retour

Envoyé par : Paul Rouget

Date : 28/03/2008 15:02

Merci de reformater ton message pour qu'il soit lisible.

# Re: Plugin Firefox et string de retour

Envoyé par : toolz

Date : 28/03/2008 17:31

utiliser dans le fichier IDL : ACString getVersion();

et dans le fichier d'interface :

NS_IMETHODIMP nsStuff::GetVersion( nsACString & _retval )

{

CString sValue = mPlugin->getVersion();

_retval.Assign( nsEmbedCString( sValue ) );

return NS_OK;

}

pour cela linker avec xpcomglue_s.lib xpcom.lib et inclure #include "nsEmbedString.h"

vu le temps passé à trouver ça la doc pourrait être mieux :o

ps : pas le temps de comprendre comment fonctionne le formatage de ce forum, faut un tuto :D

modo : j'ai reformaté si ca peut aider à la réponse

# Re: Plugin Firefox et string de retour

Envoyé par : Mushu

Date : 29/03/2008 09:20

Un petit conseil de mise en forme, utilisez des espaces devant chaque ligne de code.

# Re: Plugin Firefox et string de retour

Envoyé par : Paul Rouget

Date : 29/03/2008 12:29

toolz a écrit:

ps : pas le temps de comprendre comment fonctionne
le formatage de ce forum, faut un tuto :D

Pas le temps de comprendre ton code. ps: tout est écrit en bas de la page, c'est pas compliqué.

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.