Элемент управления ActiveX, который падает в режиме выпуска, но не в режиме отладки - PullRequest
0 голосов
/ 06 мая 2011

Я унаследовал поддержку элемента управления ActiveX, написанного на c ++ / c, который аварийно завершает работу в режиме выпуска, но не в режиме отладки.

При внедрении в веб-страницу этот элемент управления AX вызывает нарушение доступа при выпускев режиме, но не в режиме отладки

Вот подробности из IE 8

Description:  
  Stopped working  

Problem signature:  
  Problem Event Name:   APPCRASH  
  Application Name: iexplore.exe  
  Application Version:  8.0.7601.17514  
  Application Timestamp:    4ce79912  
  Fault Module Name:    mymodule.OCX  
  Fault Module Version: 13.0.0.771  
  Fault Module Timestamp:   4dc325f9  
  Exception Code:   c0000005  
  Exception Offset: 003ebc80  
  OS Version:   6.1.7601.2.1.0.256.1  
  Locale ID:    1033  

У кого-нибудь есть рекомендации, как решить эту проблему?

Ответы [ 2 ]

3 голосов
/ 06 мая 2011

Создание отладочных символов в вашей версии сборки. Тогда вы можете отладить сбой.

В качестве альтернативы, вместо ожидания сбоя, подключитесь к процессу, прежде чем выполнять действия, вызывающие сбой. В диалоговом окне «Исключения VS» необходимо немедленно остановить VS при возникновении нарушения прав доступа (Отладка | Исключения | Исключения Win32 | c0000005). Потом репро; в этот момент VS должен отобразить окно сообщения, когда произойдет AV.

Если сбой каждый раз повторяется в одном и том же месте, его легко диагностировать.

0 голосов
/ 14 августа 2015

Поскольку я потерял много времени, чтобы найти правильное решение, я делюсь им здесь:

Строка лицензии, переданная CreateControl , должна быть выделена с использованием SysAllocString или может произойти сбой вашего лицензированного элемента управления ActiveX.В моем проекте это было только в режиме выпуска ... Не знаю, почему он работает в режиме отладки.

Нашел решение косвенно здесь .

...