0

我已经在使用VB 6.0的单个“.OCX”文件创建的各种ActiveX控件。VB 6.0 ActiveX控件异常处理和清理

我在我的MFC应用程序使用这些用户控件。我在设计时在MFC PropertyPage对话框中添加了这些控件。此属性页被添加到属性表中,该属性页被添加到ActiveX容器控件中。最后,容器控件将被另一个应用程序加载。

我的对话越来越在Windows XP下正常加载,Windows 7的32位操作系统。 在Windows 2008服务器和Windows 7 64位操作系统中,当我的VB 6.0用户控件添加到属性页面时,则CPropertySheet::OnInitDialog getting failed (throws exception)。我尝试了可能的MFC异常来捕获异常,但默认(...)catch块只能执行。

当我从PropertyPage除去VB 6.0用户控件则没有例外。

  1. 如何处理VB 6.0引发的异常用户控件?
  2. 如何确保在VB 6.0的用户控件创建的内存已经释放正确?
+0

记录您看到的特定异常。请确保在64位版本的Windows上使用适当版本的regsrv32.exe。您需要在c:\ windows \ syswow64中获得32位注册。 – 2012-07-22 15:31:15

+0

我无法得到适当的例外。而是我的默认catch块正在执行catch(...){} – 2012-07-22 18:56:42

回答

1

尝试在VB6控制项目注释掉所有代码,然后重新编译。使用属性页重试。如果你没有得到同样的问题,那么你很幸运。通过方法取消注释代码方法,直到找到发生故障的代码。

+0

感谢马克。我已经在VB 6.0控件类的几乎所有方法中添加了异常处理,但在VB中未捕获异常。我会一一尝试评论方法。 – 2012-07-23 19:08:44

+0

我有一个新的ActiveX控件没有源代码。这也有同样的问题。 – 2012-08-07 10:59:40

+0

注意:每当VB控件添加到PropertyPage(在PropertySheet中添加)时,就会出现一个新的问题。当我尝试将VC ACtiveX控件添加到VC ActiveX容器中时,它工作正常。 – 2012-08-07 11:01:11