OVH Cloud OVH Cloud

warning sur un prog MFC

5 réponses
Avatar
dark poulpo
bonjour,
il se trouve que defois jai un message de warning dans la fenetre de debug
Warning: automation argument coercion failed.

savez vous a quoi c'ets lié?

merci.

5 réponses

Avatar
Patrick Philippot
dark poulpo wrote:
il se trouve que defois jai un message de warning dans la fenetre de
debug Warning: automation argument coercion failed.



Bonjour,

Des fois, c'est quand, où, comment :-) ? Merci d'être plus précis dans
vos questions, cela nous aidera à vous répondre.

En l'occurence, vous ne pouvez recevoir ce message que lorsqu'une
opération sur l'interface IDispatch se plante à cause de l'impossibilité
de convertir un argument passé ou reçu dans le bon type, probablement un
argument de type chaîne de caractères. Voir OLEDISP1.CPP.

Ce problème doit donc se présenter quand vous appelez une méthode sur un
objet COM et que cette méthode utilise des arguments de type chaîne. Si
vous ne passez pas une BSTR là où on attend ce type, par exemple. C'est
probablement un problème d'incompatibilité entre les types que vous
utilisez dans votre programme MFC et ceux utilisés par l'objet COM que
vous invoquez.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
dark poulpo
"Patrick Philippot" a écrit dans le
message de news:cpbs87$2kdq$
dark poulpo wrote:
> il se trouve que defois jai un message de warning dans la fenetre de
> debug Warning: automation argument coercion failed.

Bonjour,

Des fois, c'est quand, où, comment :-) ? Merci d'être plus précis dans
vos questions, cela nous aidera à vous répondre.

En l'occurence, vous ne pouvez recevoir ce message que lorsqu'une
opération sur l'interface IDispatch se plante à cause de l'impossibilité
de convertir un argument passé ou reçu dans le bon type, probablement un
argument de type chaîne de caractères. Voir OLEDISP1.CPP.

Ce problème doit donc se présenter quand vous appelez une méthode sur un
objet COM et que cette méthode utilise des arguments de type chaîne. Si
vous ne passez pas une BSTR là où on attend ce type, par exemple. C'est
probablement un problème d'incompatibilité entre les types que vous
utilisez dans votre programme MFC et ceux utilisés par l'objet COM que
vous invoquez.

--


Avatar
dark poulpo
"Patrick Philippot" a écrit dans le
message de news:cpbs87$2kdq$
dark poulpo wrote:
> il se trouve que defois jai un message de warning dans la fenetre de
> debug Warning: automation argument coercion failed.

Bonjour,

Des fois, c'est quand, où, comment :-) ? Merci d'être plus précis dans
vos questions, cela nous aidera à vous répondre.

En l'occurence, vous ne pouvez recevoir ce message que lorsqu'une
opération sur l'interface IDispatch se plante à cause de l'impossibilité
de convertir un argument passé ou reçu dans le bon type, probablement un
argument de type chaîne de caractères. Voir OLEDISP1.CPP.

Ce problème doit donc se présenter quand vous appelez une méthode sur un
objet COM et que cette méthode utilise des arguments de type chaîne. Si
vous ne passez pas une BSTR là où on attend ce type, par exemple. C'est
probablement un problème d'incompatibilité entre les types que vous
utilisez dans votre programme MFC et ceux utilisés par l'objet COM que
vous invoquez.


oups, jai fait entré!!!!

CString f= (LPCSTR) (pCopyDataStruct->lpData);
f=f.Left(pCopyDataStruct->cbData);
f=verifie(f);
m_browser.Navigate(f.GetBuffer(200), NULL, NULL, NULL, NULL); //c la
classe CWebBrowser, jai le message mais pas en pas en pas
f.ReleaseBuffer();
Avatar
Patrick Philippot
dark poulpo wrote:
m_browser.Navigate(f.GetBuffer(200), NULL, NULL, NULL, NULL); //c la



C'est bien ce que je disais. La méthode Navigate du WebBrowserControl
attend une BSTR. Vous passez directement un pointeur vers une chaîne
AsciiZ.

Voilà comment convertir la chaîne avant de la passer à navigate:

m_browser->Navigate(f.AllocSysString(), ...

Utilisez SysFreeString dans les quelques rares cas où vous devrez
désallouer la chaîne sans attendre que le destructeur le fasse.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
Patrick Philippot
Re,

Pour un exemple d'utilisation du WebBrowserControl via les MFC, voir:

http://www.codeproject.com/miscctrl/simplebrowserformfc.asp

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr