Hello,
J'ai l'erreur suivante :
mon sc�nario :Managed Debugging Assistant 'CallbackOnCollectedDelegate' has detected a problem in 'xxx.exe'.
Additional Information: A callback was made on a garbage collected delegate of type DLLNative!DlgMyDelegate::Invoke'. This may cause application crashes, corruption and data loss. When passing delegates to unmanaged code, they must be kept alive by the managed application until it is guaranteed that they will never be called.
1) je fournis � la Dll native un pointeur de Callback sous la forme d'un delegate
Dans la fonction qui enregistre la callback je passe en argument directement le nom de fonction !
2) ce delegate est appel� depuis la DLL native et l'erreur survient apres un temps variable (selon le GC je suppose)
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7 MyClasseCtor() { DLLNative.RegisterCallBack(FunctionCallBack); } private void FunctionCallBack(decimal _Value) {...}
Comme l'objet qui contient la fonction pass� � la DLL native est toujours instanci� et utilis�, je ne comprend pas comment ce pointeur peut etre nettoy� par le GC ??? Quel stratag�me mettre en place ?
J'ai aussi essay� de stocker le delegate dans une variable de classe...meme probl�me.![]()
Partager