我做的系统结构为:MDI_Form + ActiveX Dll。在ActiveX Dll 中会显示Form,我把Form嫁接给MDI,作为它的MdiChild窗口。Form中有用new生成的数据结构。
当程序退出时(我已经调试跟踪到MDI_UnLoad执行成功。)出现系统出错!
请各位高手帮我分析,会在什么情况下出错!
说明:
1,嫁接ActiveX Dll中的Form为MDI_Form的子窗口方式为:SetParent
2,new出来的对象我都用Set nothing。不过可能会有漏掉的。
当程序退出时(我已经调试跟踪到MDI_UnLoad执行成功。)出现系统出错!
请各位高手帮我分析,会在什么情况下出错!
说明:
1,嫁接ActiveX Dll中的Form为MDI_Form的子窗口方式为:SetParent
2,new出来的对象我都用Set nothing。不过可能会有漏掉的。
form unload后面还有一个事件的,你查一下
不用 new 了就可以了,不过全部要Set dd= nothing
"用dll时,尤其要注意,在传入的过程中,不管是不是new(因为dll自身没有实例,所以一旦调用,就是new过程),一定要用api或其他把参数obj delete掉"
恕小弟愚昧,這句話的意思不大明白, Kivic(享受·生活) 能否再詳細的講講怎麼才能避免出這樣的錯誤呢???(不好意思,借樓主的地盤先謝過了)
to:rainstormmaster(rainstormmaster)
我有在unload之前,用SetParent还原起父窗口!
to:Kivic(享受·生活)
出现的就是内存...不能read
我试试看!
另外,请教一下,在调试状态下,能否看见object的delete过程!to: arvid_gs(west)
在VB里面,不用new来实现,确实非常之难!
我原来使用C++做程序的,一直觉得VB应该很好使,可是,VB掩盖了编程的许多核心的东西,不是那么随心应手!谢谢大家的关注!我明天再来,一旦解决,我会迅速结贴给分!
(虽然大家在这里帮我并不是为了这点分)
导致这个问题的原因如下:
我在系统上装了Visual Studio .NET。应该是它导致的问题
报错如下:
AppName: reportsystem.exe AppVer: 1.0.0.0 ModName: ntdll.dll
ModVer: 5.1.2600.1106 Offset: 00001d24
在别的机子上安装不会有该问题,希望引起大家的注意。
揭帖了,谢谢各位的热心帮助!
另外,实例化过程指由静态声明创建一段内存空间(new)从而转向动态运行的过程