ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 30 déc. 2010 à 11:30
bonjour à tous,
L'erreur CallBackOnConnectedDelegate vient du fait que l'objet DDEClient est supprimé par le Garbage Collector alors que du code non managé a encore une référence vers un event handler ou un "AddressOf". En fait, il faut appeler la méthode Dispose de DDEClient ou encadrer l'objet dans un bloc using. Je vais corriger l'utilisation dans frmMain.
ShareVB
BarthOlivier
Messages postés132Date d'inscriptionmercredi 6 mars 2002StatutMembreDernière intervention27 novembre 20121 18 août 2010 à 13:15
Voici ce que j'ai fait. MA variable "DDERegressi" est declarée en statique.
Et a chaque fois que j'en ai besoin je fais cette sequence :
DDERegressi = new DDEClient();
DDERegressi.Connect();
DDERegressi.TryExecute("CLIP|ADD", 200);
DDERegressi.Disconnect();
Chez moi ça fonction. Si ça peux t'aider
cs_H2000
Messages postés9Date d'inscriptiondimanche 9 avril 2006StatutMembreDernière intervention 7 janvier 2010 18 août 2010 à 10:23
Salut,
J'ai pas compris, où tu mets Connect/Disconnect ?
Merci
BarthOlivier
Messages postés132Date d'inscriptionmercredi 6 mars 2002StatutMembreDernière intervention27 novembre 20121 8 juin 2010 à 15:21
/*
CallBackOnConnectedDelegate a été detecté
Un rappel a été effectué sur un délégué récupéré par le garbage collector de type 'Projet!Win32.DDE.DDEClient+DdeCallbackHandler::Invoke'. Cela peut entraîner un arrêt brutal de l'application, des dysfonctionnements et des pertes de données. Lors du passage de délégués à du code non managé, ils doivent être maintenus actifs par l'application managée jusqu'à ce qu'il soit garanti qu'ils ne seront jamais appelés.
*/
Réponse probablement tardive mais peut etre utile pour ceux qui arriveraient apres.
J'ai eu besoin d'intégrer cette classe.
J'avais moi aussi ce problème que j'ai réussi à corrigé en déclarant en static la variable.
Je ne fais jamais de 'new', juste du Connect/Disconect et ça semble fonctionner.
Allez un petit 9.5 ... (juste pour ce petit bug qui est surement du aux mecanismes crosoft mais bon :))
zod331
Messages postés9Date d'inscriptionlundi 18 mai 2009StatutMembreDernière intervention 8 mai 2011 6 févr. 2010 à 17:38
bonjour
cette source existe t-elle en c++ ?
joccd
Messages postés3Date d'inscriptionvendredi 17 mars 2006StatutMembreDernière intervention16 juillet 2009 16 juil. 2009 à 20:00
Est ce qu'il est possible d'utiliser ce code pour récupérer toutes les urls des onglets ouverts
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 7 mai 2009 à 19:59
Est-ce que tu fais bien un DDEClient.Disconnect entre chaque tour de boucle ?
ShareVB
jello840
Messages postés1Date d'inscriptionmardi 19 avril 2005StatutMembreDernière intervention28 avril 2009 16 avril 2009 à 15:04
Bonjour !
D'une part je trouve ton code très bien fait !
Mais je rencontre un souci, j'ai cherché à l'adapter à mes besoins ... mais un bug remonte !
Je dois faire une application qui récupére tous les URL visités sur les différents navigateurs !
Je me retrouve donc à faire un "for" pour chaque processus et lancer la connexion DDE pour avoir l'URL !!! Et là j'obtiens cette erreur que j'arrive pas à résoudre :
/*
CallBackOnConnectedDelegate a été detecté
Un rappel a été effectué sur un délégué récupéré par le garbage collector de type 'Projet!Win32.DDE.DDEClient+DdeCallbackHandler::Invoke'. Cela peut entraîner un arrêt brutal de l'application, des dysfonctionnements et des pertes de données. Lors du passage de délégués à du code non managé, ils doivent être maintenus actifs par l'application managée jusqu'à ce qu'il soit garanti qu'ils ne seront jamais appelés.
*/
Pourrais-tu m'aider pour résoudre mon problème ?
Merci d'avance,
Jérôme.
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 18 mars 2008 à 22:10
salut,
désolé pour le délai...le bug devrait être corrigé...
ShareVB
Kleidp
Messages postés124Date d'inscriptionjeudi 5 juin 2003StatutMembreDernière intervention10 février 2008 17 janv. 2008 à 14:28
Il y a une erreur d'accès mémoire si l'on ferme le navigateur après avoir exécuté le programme :(
Je n'arrive pas à corriger le bug (sûrement un pointeur)
Kleidp
Messages postés124Date d'inscriptionjeudi 5 juin 2003StatutMembreDernière intervention10 février 2008 16 janv. 2008 à 21:16
30 déc. 2010 à 11:30
L'erreur CallBackOnConnectedDelegate vient du fait que l'objet DDEClient est supprimé par le Garbage Collector alors que du code non managé a encore une référence vers un event handler ou un "AddressOf". En fait, il faut appeler la méthode Dispose de DDEClient ou encadrer l'objet dans un bloc using. Je vais corriger l'utilisation dans frmMain.
ShareVB
18 août 2010 à 13:15
Et a chaque fois que j'en ai besoin je fais cette sequence :
DDERegressi = new DDEClient();
DDERegressi.Connect();
DDERegressi.TryExecute("CLIP|ADD", 200);
DDERegressi.Disconnect();
Chez moi ça fonction. Si ça peux t'aider
18 août 2010 à 10:23
J'ai pas compris, où tu mets Connect/Disconnect ?
Merci
8 juin 2010 à 15:21
CallBackOnConnectedDelegate a été detecté
Un rappel a été effectué sur un délégué récupéré par le garbage collector de type 'Projet!Win32.DDE.DDEClient+DdeCallbackHandler::Invoke'. Cela peut entraîner un arrêt brutal de l'application, des dysfonctionnements et des pertes de données. Lors du passage de délégués à du code non managé, ils doivent être maintenus actifs par l'application managée jusqu'à ce qu'il soit garanti qu'ils ne seront jamais appelés.
*/
Réponse probablement tardive mais peut etre utile pour ceux qui arriveraient apres.
J'ai eu besoin d'intégrer cette classe.
J'avais moi aussi ce problème que j'ai réussi à corrigé en déclarant en static la variable.
Je ne fais jamais de 'new', juste du Connect/Disconect et ça semble fonctionner.
Allez un petit 9.5 ... (juste pour ce petit bug qui est surement du aux mecanismes crosoft mais bon :))
6 févr. 2010 à 17:38
cette source existe t-elle en c++ ?
16 juil. 2009 à 20:00
7 mai 2009 à 19:59
ShareVB
16 avril 2009 à 15:04
D'une part je trouve ton code très bien fait !
Mais je rencontre un souci, j'ai cherché à l'adapter à mes besoins ... mais un bug remonte !
Je dois faire une application qui récupére tous les URL visités sur les différents navigateurs !
Je me retrouve donc à faire un "for" pour chaque processus et lancer la connexion DDE pour avoir l'URL !!! Et là j'obtiens cette erreur que j'arrive pas à résoudre :
/*
CallBackOnConnectedDelegate a été detecté
Un rappel a été effectué sur un délégué récupéré par le garbage collector de type 'Projet!Win32.DDE.DDEClient+DdeCallbackHandler::Invoke'. Cela peut entraîner un arrêt brutal de l'application, des dysfonctionnements et des pertes de données. Lors du passage de délégués à du code non managé, ils doivent être maintenus actifs par l'application managée jusqu'à ce qu'il soit garanti qu'ils ne seront jamais appelés.
*/
Pourrais-tu m'aider pour résoudre mon problème ?
Merci d'avance,
Jérôme.
18 mars 2008 à 22:10
désolé pour le délai...le bug devrait être corrigé...
ShareVB
17 janv. 2008 à 14:28
Je n'arrive pas à corriger le bug (sûrement un pointeur)
16 janv. 2008 à 21:16
et commenté en plus 10/10