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