0

與IE 10調試32位ActiveX控件與Visual Studio 2008和IE 10

運行時,深入研究後,我無法命中斷點,而使用Visual Studio 2008調試我的32位ActiveX控件,我我們瞭解到,當HKEY_CURRENT_USER \ Software \ Microsoft \ Internet Explorer \ Main \ TabProcGrowth設置爲非零值時,IE 10將只能以32位模式運行。這使我能夠運行32位ActiveX控件。但是,這也會禁用在使用Visual Studio進行調試時命中斷點的功能,因爲爲了使用斷點進行調試,此值必須爲零。正如其他問題/迴應所述:「爲了進行調試,您可能會發現設置HKCU \ Software \ Microsoft \ Internet Explorer \ Main \ TabProcGrowth = 0(DWORD)會有幫助,這將禁用IE中的進程分離。

這創建了catch-22場景,因爲爲了調試,TabProcGrowth必須爲零,但爲了讓IE 10以32位模式運行,TabProcGrowth必須爲非零值。

對於我可能做什麼的任何建議?

在此先感謝。

回答

0

如何調試C++在IE.10 + WIN8 64位+ VS2008:

  1. 保持TabProcGrowth與中等(不改變!)
  2. 設置VS2008 OCX項目進行調試命令C:\ PROGRAM文件(x86)\ Internet Explorer \ iexplore.exe,附件=是,調試器類型=僅限本機
  3. 打開Internet Explorer 10窗體的WIN8任務欄。
  4. 鍵入Internet Explorer 10的url中的目標ocx htm文件路徑中,然後按Enter鍵以加載htm。
  5. 啓用IE.10 ActiveX模式。
  6. 當IE10準備好ActiveX模式時,運行您的VS2008 OCX procject,它會將IE10連接到您的中斷點。
  7. 再次刷新IE.10 html以開始調試您的ocx源代碼。
0

這裏是我發現調試一個32位的ActiveX控件與VS2013和IE10(Win7的64位)的方式:

  1. VS:設置OCX項目調試屬性:命令= C :\ Program Files \ Internet Explorer \ iexplore.exe,附件=否
  2. 在VS中啓動調試器(IE10尚未啓動):如果出現警告消息(「iexplore.exe'的調試信息不​​能找到...「),選擇」是「(繼續調試)。 IE10現在應該已經啓動了。
  3. 在VS菜單中,轉到調試>附加到進程:請注意現有的「iexplore.exe」進程的ID。
  4. 在IE10中打開你的ocx html文件,然後返回VS的Attach to Process屏幕:刷新進程列表,然後附加到新出現的「iexplore.exe」進程。
  5. 刷新IE10中的ocx html頁面:這應該會將您的VS調試器帶到您的第一個斷點。