可以在VB6程序不包含关键字“新”有内存泄漏?
如果有,请提供一个例子。
可以在VB6程序不包含关键字“新”有内存泄漏?
如果有,请提供一个例子。
总结到目前为止的答案:调用另一个组件可能会引入内存泄漏。 该组件可以马车,或者你可能会误用。 该组件可以是一个OCX或DLL(包括API调用到Windows DLL,它是内存泄漏和Windows资源何况很多其他惊险的问题一个很好的方式)。
而一个迂腐一点:你可以创建使用对象CreateObject
,所以你可以通过内存泄漏循环引用不使用New
。 而onedaywhen指出在评论中你也可以创建一个表单变量循环引用不使用New
。 但我认为这个问题的观点是VB6的内存泄漏是否能有除了循环引用的其他原因。
递归的答案不会导致内存泄漏-引用计数将收拾环路的每次执行的内存-看到我的答案的评论。
你可以调用一些存在内存泄漏第三方DLL。
是的,可以。 在我了解了特定的Windows API调用内存泄漏,VB6的程序我写了使用的透明位块传输展出了内存泄漏。 所以,当泄漏的程序本身不是,它是在那VB6称为Win32 API中的功能之一。
...不要忘记OCX控件内存泄漏
我们不得不使用一个模块在一个全局变量下,COM +运行时泄漏。 这是很久以前的事不记得细节。
这是什么痴迷的新关于内存泄漏? 我看不出有任何关系除了通过将其设置为Nothing后触摸引用变量分配另一个对象。
如果你这样做,你可能有一个逻辑错误呢。 不使用新只是意味着你吹起来,而不是,我几乎没有“固定”任何理念。
最糟糕的泄漏可能涉及的API调用像那些需要隐含地分配数据结构的明确的清理/释放OLE或GDI例程。
但正如我所说,新的内存泄漏关联听起来坚果给我。