在 VB6 中什么时候必须将变量设置为“Nothing”?

2024-04-12

在我的一个 VB6 表单中,我创建了几个其他 Form 对象并将它们存储在成员变量中。

Private m_frm1 as MyForm
Private m_frm2 as MyForm

// Later...
Set m_frm1 = New MyForm
Set m_frm2 = New MyForm

我注意到,每当创建和销毁此(父)表单时,我都会泄漏内存。我是否有必要将这些成员变量分配给Nothing in Form_Unload()?

一般来说,什么时候需要这样做?

已解决:当我执行以下操作时,此特定内存泄漏已修复Unload在有问题的表格上,而不是当我将表格设置为Nothing。我通过将类模块的一些实例显式设置为来消除其他一些内存泄漏Nothing,还有。


实际上VB6实现了RAII http://en.wikipedia.org/wiki/RAII就像 C++ 一样,意味着本地声明的引用会自动设置为Nothing在一个块的末尾。同样,它should执行后自动重置成员类变量Class_Terminate。然而,有几份报告表明这并不可靠。我不记得任何严格的测试,但手动重置成员变量始终是最佳实践。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 VB6 中什么时候必须将变量设置为“Nothing”? 的相关文章

  • 用于从字符串安全转换的辅助函数

    回到 VB6 我编写了一些函数 让我在编码时无需关心字符串的 null 和 数字的 null 和 0 等之间的区别 编码时 没有什么比添加特殊情况更能降低我的工作效率了用于处理可能导致一些不相关错误的数据的代码 9999 10000 如果我
  • DOM 解析器 Chrome 扩展内存泄漏

    问题 我开发了一个扩展程序 可以拦截 Web 请求 获取 Web 请求来源的 HTML 并对其进行处理 我使用 DOMParser 来解析 HTML 并且意识到 DOMParser 正在导致大量内存泄漏问题 最终导致 chrome 扩展崩溃
  • Windows 7 下 VB 6 中的“用户定义类型未定义”错误

    我使用的是 Windows 7 我的项目是 VB 6 0 我在执行程序时遇到错误 它显示错误 未定义用户定义类型 这是我的代码 Private Sub Toolbar1 ButtonClick ByVal Button As MSComct
  • 内存泄漏在哪里?

    我使用 InetAddress 来解析 IP 地址 但现在如果 IP 不可用 则需要存储主机名 所以我介绍了一个班级Host case class Host name String ip InetAddress import Host ad
  • 运行 SomeActiveX.Exe /regserver 的 API 等效项

    我需要以编程方式注册 ActiveX exe 而 Shell SomeActiveX Exe regserver 是不够的 有人知道等效的 API 吗 您可以使用DLL注册服务器 http msdn microsoft com en us
  • 寻找示例项目和“如何创建”VB6 Activex EXE

    我正在学习如何创建 VB6 Active X EXE 我需要为许多 VB6 应用程序添加 打电话回家 到服务器的功能 我想集中此功能 但不想使用 DLL 来实现 因为我只想需要防火墙权限one程序 phone home ActiveX EX
  • 什么时候会发生内存泄漏?

    我不知道在这里该怎么想 我们有一个作为服务运行的组件 它在我的本地计算机上运行得很好 但在其他一些计算机上 两台计算机的 RAM 都等于 2GB 它开始在第二天和连续几天生成 bad alloc 异常 问题是该进程的内存使用量保持在大约 5
  • jquery的empty()方法会清除通过非jquery方式创建的事件监听器吗

    我有一个包含很多子元素的元素 我想清除该元素的内容并用新的结构替换它 子元素分配有各种事件侦听器 并且并非所有这些侦听器都是通过 jquery 绑定方法创建的 如果我使用 jquery 的空方法来清除元素 它会删除所有事件侦听器还是只会清除
  • 将 System.Array 从 .Net 编组到 vb6

    我有一个 Net 组件 它有一个 COM 可见类 该类具有返回 System Array 的方法 它实际上返回一个字符串数组 但返回类型声明为 System Array 不要问我 为什么 我知道我可以将返回类型声明为 string 这样就可
  • 管理软件的演示版本[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个用VB6编写的软件产品 它是一个付费软件产品 有1个月的演示版本 演示版本没有单独的安装文件 输入产品密钥后 软件会将演示版本
  • 在 C# 中给定周数和年份,计算一周的开始和结束日期(基于 ISO 规范)

    我需要生成一份报告 显示一年中的 52 周 或某些年份的 53 周 及其开始日期和结束日期 有一个 ISO 规范可以做到这一点 但看起来非常复杂 我希望有人知道在 C 或 Visual Basic 中执行此操作的方法 实际上适用于 Visu
  • 在 VB6 中使用 Crystal Reports 时出现错误 20728-F

    我在 VB6 项目中使用 Crystal Reports 但在加载报表时遇到错误crystalreport1 action 1 请给我一些解决这个问题的方法 它显示错误为Error in 20728 F cryStockReport Rep
  • 在 VB6 中计时函数/测量性能的最佳方法是什么?

    如果我只想快速测量特定函数花费的时间 我可以调用什么来获得准确的计时 鉴于VB6计时函数精度不高 是否可以调用Windows API函数 您还通过哪些其他方式衡量应用程序性能 有推荐的第三方工具吗 我通常使用 Windows 高分辨率性能计
  • 如何在 VB6 中读取子进程的标准输出?

    在VB6中创建进程时 涉及this https stackoverflow com questions 570295 can i spawn a synchronous process in vb6 and retrieve its ret
  • VB6中VarType返回的vbError是什么?

    我一直在网上搜索这个 但一切都在谈论ErrObject类 或常量vbError由返回VarType功能 我想知道那个类型实际上是什么is 例如一个integer是这样的4 a string是这样的 hello world etc 对于一点背
  • SwiftUI NavigationLink 内存泄漏

    我有一个关于内存管理在 SwiftUI 的 NavigationView 堆栈中如何工作的问题 我有一个视图 其中声明了 NavigationView 和 NavigationLink NavigationLink 的目标参数内是我的 Te
  • PresentModalViewController 上的内存泄漏

    我正在打开相机供用户拍照 当我拍照并按下 使用 按钮时 我不断出现内存泄漏 selfpresentModalViewController imagePickeranimated YES 完整代码 imagePicker UIImagePic
  • 如何在 Eclipse 中保存堆(转储到文件)?

    当我从 MyEclipse 运行或调试 GA AI 时 出现此错误 线程 main 中的异常 java lang OutOfMemoryError Java 堆空间 eclipse ini 看起来像这样 showsplash com gen
  • 为什么我的应用程序会触发另一个应用程序的安装程序?

    当使用旧版 VB6 应用程序并在该应用程序中打开某些特定表单时 会弹出属于 Microsoft Navision 安装在同一台计算机上 的 Windows Installer 如附图所示 每次都会发生这种情况 但仅限于这台机器 VB6应用程
  • 为什么 _CrtDumpMemoryLeaks 在这里报告内存泄漏?

    我想在调试模式下检查内存泄漏 我使用 Windows 为了完成这项工作 函数 CrtDump内存泄漏 http msdn microsoft com en us library d41t22sb v vs 110 aspx 现在 为什么这段

随机推荐