【发布时间】:2012-07-22 07:48:21
【问题描述】:
我使用 VB 6.0 在单个“.ocx”文件中创建了各种 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 用户控件时,也不例外。
- VB 6.0用户控件抛出的异常如何处理?
- 如何确保在 VB 6.0 用户控件中创建的内存已被正确释放?
【问题讨论】:
-
记录您看到的特定异常。请务必在 64 位版本的 Windows 上使用正确版本的 regsrv32.exe。您需要 c:\windows\syswow64 中的那个来获得 32 位注册。
-
我无法获得正确的异常。相反,我的默认 catch 块正在执行 catch(...) { }
标签: memory-management exception-handling user-controls vb6 activex