日期:2014-05-18  浏览次数:20998 次

[急切求助]XX:Invoke类型的已垃圾回收委托进行了回调
感觉是回调函数调用有问题,
但是也很奇怪,为什么用开发工具编译运行没有问题,
但是直接运行EXE程序就报错误。

项目-->属性-->生成-->勾选"允许不安全代码"
也同样有这个"代理函数被回收"的错误。
=======================
项目-->属性-->调试-->勾选"启用非托管代码调试"
调试时的提示信息如下:

托管调试助手“CallbackOnCollectedDelegate”
在“桌面\testDLL\bin\Debug\testDLL.exe”中检测到故障。
其他信息: 对“testDLL!testDLL.Form1+LPONGETMSG2::Invoke”
类型的已垃圾回收委托进行了回调。
这可能会导致应用程序崩溃、损坏和数据丢失。向非托管代码传递委托时,
托管应用程序必须让这些委托保持活动状态,
直到确信不会再次调用它们。
=======================
项目-->属性-->生成-->配置下拉框选择"Release",有是同样的错误。

------解决方案--------------------
同样想了解,帮顶。。。
------解决方案--------------------
深入理解C#委托的实质
http://developer.51cto.com/art/200909/150396.htm

C#中调用 调试C++的DLL 
http://blog.csdn.net/jaylongli/archive/2010/06/01/5638598.aspx

C#动态调用C++编写的DLL函数
http://www.zxbc.cn/html/20080508/34128.html

------解决方案--------------------

------解决方案--------------------
我也想知道这个问题,该怎么解决...
------解决方案--------------------
你在什么情况下使用了Invoke