从.NET Windows窗体中承载的OCX捕获异常/错误

从.NET Windows窗体中承载的OCX捕获异常/错误,.net,winforms,vb6,ocx,.net,Winforms,Vb6,Ocx,我有一个.NET Windows窗体,用于承载旧的VB6 OCX窗体。这是我无法逃避的!至少现在 我不确定这一段是否有用,但以防万一,我将分享这些信息。为了加载此控件,我的.NET应用程序提供了一个配置文件,其中包含有关OCX控件的信息。然后,我将使用反射加载控件,使用Activator.CreateInstance创建一个实例,并将此对象强制转换为System.Windows.Forms.control。然后,我将其添加到.NET表单的控件集合中。这种方法适合我 因此,我想要的是捕获.NET表

我有一个.NET Windows窗体,用于承载旧的VB6 OCX窗体。这是我无法逃避的!至少现在

我不确定这一段是否有用,但以防万一,我将分享这些信息。为了加载此控件,我的.NET应用程序提供了一个配置文件,其中包含有关OCX控件的信息。然后,我将使用反射加载控件,使用Activator.CreateInstance创建一个实例,并将此对象强制转换为System.Windows.Forms.control。然后,我将其添加到.NET表单的控件集合中。这种方法适合我

因此,我想要的是捕获.NET表单中的OCX异常和错误,或者以任何方式知道此OCX表单崩溃。这可能吗?有没有人有过类似的经历?顺便说一下,我正在使用.NET2.0


谢谢

因为还没有比这更博学的人回答

  • 如果直接从.Net代码调用VB6中的方法/属性,则VB6中引发的错误应作为异常传播回.Net
  • VB6代码可能包括窗体和控件的事件处理程序。在这些例程中需要错误处理程序,在错误转到时使用
    。我认为未经处理的错误将使应用程序崩溃(Windows事件下的调用堆栈中没有.Net代码)。如果您想将错误传回.Net,则需要发明一种机制来实现。从VB6组件引发自定义事件,或提供从VB6到.Net的回调

    • 因为还没有比他更博学的人回答

      • 如果直接从.Net代码调用VB6中的方法/属性,则VB6中引发的错误应作为异常传播回.Net
      • VB6代码可能包括窗体和控件的事件处理程序。在这些例程中需要错误处理程序,在错误转到时使用
        。我认为未经处理的错误将使应用程序崩溃(Windows事件下的调用堆栈中没有.Net代码)。如果您想将错误传回.Net,则需要发明一种机制来实现。从VB6组件引发自定义事件,或提供从VB6到.Net的回调

      你好,马克。你的回答真的帮助了我。根据你的专业知识,你给了我两个选择。“既然还没有比这更博学的人回答过……”我会把它标记为答案。再次感谢您的帮助。@作者很高兴它起了作用。我感到有点不自信,因为尽管我读过.NetVB6 interop,但实际上我并没有太多地使用它!我想一定会有更多的人能从经验中做出回答。你的回答真的帮助了我。根据你的专业知识,你给了我两个选择。“既然还没有比这更博学的人回答过……”我会把它标记为答案。再次感谢您的帮助。@作者很高兴它起了作用。我感到有点不自信,因为尽管我读过.NetVB6 interop,但实际上我并没有太多地使用它!我想一定有更多的人可以根据经验来回答