2011年3月29日星期二

CWebBrowser2打开PDF后退出时崩溃问题的解决

  用嵌入在对话框中的CWebBrowser2控件打开PDF文档后,主程序退出时抛了Access Violation。扔异常的是ACRORD32.DLL,ADOBE自己的玩意儿,调用栈中也看不出什么,主程序看来都快退完了,显然和什么东西没关干净有关。

  照例,国产没货。最后在这里找到了:
  ◆ http://forums.adobe.com/message/2373918
  贴子中的人也是一筹莫展了快一年,最后按这个办法解决了:
  ◆ http://stackoverflow.com/questions/1359616/axacropdflib-at-closing-problem-c
  简单地说,的确是没关干净。加上一句CoFreeUnusedLibraries()就万事大吉了。
  以上方法,在VC6 sp6/WinXP的Debug和Release编译上都试过。除此之外就不知道了。
  据说,问题和Adobe Reader 9有关。V8没有这个问题,因为V8是单一实例,而V9不是。照此一来,内存泄漏可能也是难免的。