为什么 ByRef 不能与 WithEvents 结合使用?

2024-02-26

我想我很清楚两者之间的区别ByVal and ByRef在 VB 中,但我的问题是当我尝试将它与声明为的成员结合使用时WithEvents.

我有以下方法:

Private Sub SafeCloseAndDeRefConnection(ByRef cnx As ADODB.Connection)
On Error GoTo ErrH
    If Not cnx Is Nothing Then
        If (cnx.State And adStateConnecting) = adStateConnecting Then
            cnx.Cancel
        End If

        If (cnx.State And adStateOpen) = adStateOpen Then
            cnx.Close
        End If

        Set cnx = Nothing
    End If
Exit Sub
ErrH:
 Set cnx = Nothing
End Sub

如果我有一个这样声明的类成员:

Private WithEvents Connection As ADODB.Connection

然后我想关闭连接,然后这样调用它:

SafeCloseAndDeRefConnection Connection

但在拨打电话后SafeCloseAndDeRefConnection the Connection变量是not set to Nothing并且仍然有其原始参考。

如果我删除WithEvents关键字调用SafeCloseAndDeRefConnection按预期工作(但显然事件无法处理)

谁能向我解释为什么会发生这种情况?

附:我找到了类似的,但该解决方法在我的场景中不起作用。


也许可以打电话:

Set Connection = Nothing

After SafeCloseAndDeRefConnection(Connection)

这将强制销毁对象,而不是依赖 VB6 来为您完成!

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

为什么 ByRef 不能与 WithEvents 结合使用? 的相关文章

  • 为什么 ByRef 不能与 WithEvents 结合使用?

    我想我很清楚两者之间的区别ByVal and ByRef在 VB 中 但我的问题是当我尝试将它与声明为的成员结合使用时WithEvents 我有以下方法 Private Sub SafeCloseAndDeRefConnection ByR
  • 从字符串中提取最大的数字序列(正则表达式,或?)

    我有类似于以下内容的字符串 4123499 TESCO45 123 every99999994 54 我想分别提取每个字符串中最大的数字序列 4123499 99999994 我以前尝试过正则表达式 我使用的是VB6 Set rx New
  • 输入框 取消

    我创建了一个输入框来输入用户名 但卡住了取消按钮 Private Sub Form Load fsUserName UCase InputBox Please Enter your name User Name dc If fsUserNa
  • 在多少种语言中,Null 不等于任何非 Null 的东西?

    在多少种语言中 Null 不等于任何非 Null 的东西 SQL 作为一种逻辑语言 就是这样 因为 null 意味着未知 未定义 然而 在编程语言 例如 C 或 C 中 空指针 引用是具有特定含义的特定值 什么都没有 两个无是等价的 但两个
  • 接受字节数组,vb6 到 C# 互操作

    我正在做一个将 vb6 与加密包装器通信的应用程序 到目前为止 net 和互操作部分一切正常 完全正常工作 当我的客户正在测试它时 我有一个简单的问题 ComVisible true public SomeObjectComVisible
  • 从 C# 创建 COM 索引属性?

    我正在尝试用新的 net dll 来模仿旧的 vb6 dll 模仿必须是完美的 以便调用者不知道他们正在使用新的 dll 不过我有一个好奇心 在 VB6 中 对象库中有以下内容 Property BankList Index As Long
  • 用于多语言 API 的 Doxygen

    我的公司开发了一个用于工程程序的 API 它是用 C 开发的 但我们为以下语言创建了包装器 类似于 VB 的专有语言 MATLAB 和Python 目前 文档是由一堆脚本生成的 要保持 100 的完整性开始变得非常耗时 我想知道是否有一种方
  • Visual Basic 6 ListView 的自动化支持

    I need to get value text of control via automation interface coding with C C I tried with UI Automation API https msdn m
  • 如何通过 COM 公开 .netstandard2.0 库以便在 VB6 中使用?

    我有一个 dotnet 核心库 一个框架 4 7 2 库和一个 vb6 应用程序 我想编写一个公共库供他们所有人访问 因此选择 netstandard2 0 我尝试了 netstandard2 0 库和 vb6 之间的 4 7 2 框架包装
  • 如何使用 VB6 将 PNG(图像)文件打开为 RGB 数组或 R、G、B 数组

    如何用VB6打开PNG格式的图像文件 理想情况下 我 即我的客户 希望打开 PNG 文件并将其放入单独的 R ed G reen 和 B lue 数组中 VB6 不是我选择的工具 因为缺乏知识 如果有人能为我指明 VB6 解决方案的正确方向
  • 更新 KB 2687323 后,VB6 IDE 无法加载 MSCOMCTL.OCX

    Windows 更新安装安全更新后KB2687323 http support microsoft com kb 2687323 我的 VB6 项目无法加载 显示的错误消息是 无法加载 project vbp path MSCOMCTL O
  • 有没有办法在 Visual Basic 6.0 应用程序中添加全局错误处理程序?

    VB 6 0没有任何全局处理程序 为了捕获运行时错误 我们需要在每个我们认为可能发生错误的方法中添加一个处理程序 但是 仍然有一些地方可能被遗漏 所以 我们最终会遇到运行时错误 在应用程序的所有方法中添加错误处理程序 唯一的方法吗 不 无法
  • VB6 和 .PFX 代码签名

    我的老板已经从 Comodo 获得了证书 而我一直在努力寻找获得证书问题的解决方案intoVB6 应用程序 证书本身是 VB6 格式的 我对这类事情几乎一无所知 Comodo 的人真是太乐于助人了 我的老板说他可以在互联网上找到一些东西 显
  • Visual Basic 6.0 中的无效限定符错误

    在 Visual Basic 6 0 程序中 我有一个字符串 sTemp 我想确保它不包含引号 我有这行 If sTemp Contains Then 但是当我在 sTemp 之后输入句点时 我没有从智能感知中得到任何信息 并且当我尝试编译
  • 在 Matlab、VB6 和 VB.NET 程序之间发送消息的最简单方法

    我们正在将一套数据采集和分析例程从 VB6 程序升级为 VB NET VB6 和 Matlab 程序的混合体 我们希望保持系统模块化 单独的 EXE 以便我们可以轻松创建专门的独立分析程序 而无需不断升级大型应用程序 当所有程序都是用 VB
  • RS 232 中断信号

    我有一个RS232信号捕获设备 而且效果很好 我需要一些帮助来理解数据 基本上我们购买它是因为我们正在处理 80 年代末使用串行通信的机器控制器 尽管知道端口参数 但我们运气不佳 从我转储的数据来看 机器控制正在使用中断信号作为其协议的一部
  • Access 2013/2016 不支持树形视图控件,给出错误消息“用户定义的类型未定义”

    我有一个 VBA 项目 可以完美运行到 Windows 7 32 64 位 和 Office 2010 但是当我尝试在 Office 2013 或 2016 上运行它时 它不会加载树视图控件并在以下位置给出错误 私有 SelectedNod
  • Visual Basic 6:如何使应用程序在任务栏中可见?

    我已将属性 ShowInTaskBar 设置为 true 但我的应用程序在任务栏中不可见 表单具有最小化 最大化和关闭按钮 当我单击最小化时 表单最小化为屏幕左下角的小表单 但不显示在任务栏中 你的表单是模态的吗 MyForm Show v
  • VB6 - Lua 集成

    我想知道是否有人有任何集成 Lua 和 VB6 的技巧 我正在运行一个小型在线角色扮演游戏 添加一些脚本会很棒 嗯 这是可行的 我曾经为 Lua 5 0 2 做过 但找不到文件 在您拥有的选项中 您可以 将 Lua 封装在公开 Lua AP
  • 基于 Windows 8 ARM 的平板电脑上的 VB6

    随着 Windows 8 将支持 VB6 我的问题是 Microsoft 是否在任何地方表示 是或否 VB6 应用程序将在基于 ARM 的平板电脑上运行 如果没有 是否有任何 ARM 模拟器 以便我们可以在 Windows 8 ARM 平板

随机推荐

  • 无法使 Laravel 4 的 Validator 类在框架外工作

    我正在尝试在框架之外使用 Laravel 4 Eloquent 因为 Illuminate Database 包已通过 Composer 独立可用 Eloquent 本身运行良好 但我在尝试实现验证规则时遇到了阻碍 我首先尝试使用一些预构建
  • 如何处理 Cordova 或 Phonegap 上 android 4.0-4.3 和 4.4 之间的宽度不一致?

    我正在 Cordova 3 4 上做一个应用程序 并在使用 Android 4 4 2 的 Moto X 使用 Android 2 3 的 Samsung Galaxy Ace 和模拟器上进行测试 我保留 cli 创建的原始视口 在CSS上
  • jQuery UI 对话框如何禁用后台输入的焦点?

    当您使用 jQuery UI 打开模式对话框时 您会注意到 如果使用 Tab 键 则可以将焦点放在对话框的按钮上 但对话框外部的任何输入都会被忽略 我正在尝试实现同样的行为jQuery UI 工具叠加 http jquerytools or
  • 具有绝对位置的嵌套 Touchable

    我需要实现一个界面 其中一个对象是可单击的 但该对象的一个 区域执行另一个操作 如下所示 gt clicking on this small area does an action gt clicking on this area does
  • 值循环的最小排序

    给定如下序列 1 2 1 2 1 1 1 2 1 2 1 3 1 2 1 2 1 3 什么是高效的获得最小订购量的方法 1 1 1 2 1 2 1 3 1 2 1 2 1 3 1 2 1 2 暴力方法是显而易见的 所以请不要推荐它 除非提供
  • 如何通过 Facebook 的 Graph API 获取共同好友

    有没有办法使用 Facebook 的 Graph API 获取共同好友列表 我一直在玩这个工具 https www simoncross com fb graph GET https graph facebook com 并且还没有想出办法
  • 使用 MVVM 绑定 ComboBox SelectedItem

    我有一个问题选定的项目 in my ComboBox
  • 如何找到对用户控件的所有引用

    在 Visual Studio 2010 中 我有一个非常大的 ASP NET 网站项目 其中有很多用户控件 如何确定整个项目中引用特定 ascx 用户控件的所有 aspx 页面 Thanks 右键单击您的班级User Control并选择
  • 如何在设计时制作支持拖放的自定义WPF ContentControl?

    我想创建内部有一个 子 控件的自定义 WPF 控件 子类化ContentControl or UserControl有效 但有一个缺陷 这些控件在设计器模式下不起作用 我所说的 不起作用 是指这种情况 假设我有一个Canvas里面有我的自定
  • 如何在 iPhone 中保存密码?

    我需要创建一个 iPhone 应用程序 它将与网站通信 所以它需要用户名和密码 现在我需要知道如何在 iphone 中保存用户名和密码 我已经使用过 NSuserdefaults 但这并没有解决我的 pblm 另外我需要恢复视图 从用户退出
  • 使用从情节提要中的通用类继承的类时,出现“界面生成器文件中的未知类”

    我最近重构了我的课程BookTableViewController来自简单的继承UITableViewController 这样它现在继承自泛型类FetchedResultsTableViewController
  • 在 Android 模拟器中以“飞行”模式进行测试

    我正在尝试在手机没有连接到互联网的情况下测试我的应用程序 在我的模拟器中 我在设置中打开了飞行模式 但是 我的应用程序似乎仍然能够与我的服务器通信 它正常工作 在我的设备上 相同的代码在没有数据连接的情况下引发错误 如何确保模拟器中没有互联
  • Route.php找不到我创建的控制器类

    我正在尝试构建一个 silex 应用程序 我的文件结构是 ROOT App Controller IndexController php Config dev php prod php route php vendor web index
  • Canvas 会减小 Jpeg 的图像大小,但为什么呢?

    当我使用以下命令将 JPEG 图像绘制到 Canvas 时drawImage 之后 使用canvas toDataURL 使其可保存在本地 用鼠标右键单击 则保存的 Jpeg Image 的文件大小会减少约 40 仅当使用 Jpeg 时才如
  • 如何处理复合微服务请求中的验证?

    考虑一个具有两个实体的应用程序 User 包含基本用户数据 例如姓名 Passport 包含身份验证凭据 即密码 以及两个内部微服务 UserService 负责创建和管理用户及其基础数据 AuthService 负责用户认证和密码处理 T
  • 跨类型构造函数编写通用仿函数实例?

    我正在学习基本类型课程并编写了自己的实现functor适合我的类型Test a 行为就像Maybe data Test a Test a Emp class FC c a where t a gt b gt c a gt c b insta
  • Git 交互式合并?

    我有两个分支具有完全相同的文件 如果您想知道它是一个 sql 文件 我想以交互方式合并它 我几乎想打开一个 diff 程序 就像出现冲突 或命令行 时所做的那样 并准确选择哪些行去哪里 有办法做到这一点吗 是的 但主要是通过手动实现 您将告
  • 使用 BouncyCastle 解密 Rijndael 256 块大小

    我们有一个用于加密的辅助类 老实说 它可能是几年前从 Stack Overflow 复制的 目前 我们正在尝试将部分代码移植到 NET Core 但我们发现它不起作用 因为 NET Core 实现RijndaelManaged不支持 256
  • Spring MVC 可以处理多值查询参数吗?

    有了这个http myserver find by phones phone 123 phone 345请求 是否可以处理这样的事情 Controller public class Controller RequestMapping fin
  • 为什么 ByRef 不能与 WithEvents 结合使用?

    我想我很清楚两者之间的区别ByVal and ByRef在 VB 中 但我的问题是当我尝试将它与声明为的成员结合使用时WithEvents 我有以下方法 Private Sub SafeCloseAndDeRefConnection ByR