Как отладить COM-объект в Visual Studio 6.0, созданный на странице ASP?

StackOverflow https://stackoverflow.com/questions/370250

  •  21-08-2019
  •  | 
  •  

Вопрос

У меня есть старый COM-компонент C++, который должен оставаться в формате Visual Studio 6.0.Я хоть убей не могу понять, как отлаживать код реального COM-компонента.

Я могу собрать его в режиме отладки, добавить точки останова и присоединить к процессу dllhost.exe, но среда Visual Studio покажет мне только дизассемблирование из dllhost.exe, а не мой исходный код (это также не останавливает на точках останова).

Я помню, некоторое время назад был способ сделать IIS (или inetinfo.exe) цель вашего действия отладки (т.е.когда Visual Studio 6.0 запрашивает исполняемый файл для запуска вашей dll), и IIS будет работать в режиме одного процесса.Вам нужно было изменить ключ реестра, но поиск в Google не помог.

Это было полезно?

Решение

Если это COM-компонент на базе VB6, вы можете открыть проект в VB6 и запустить его (проект DLL запустить невозможно).В свойствах проекта есть опция, с помощью которой его можно попросить запустить, чтобы он запустился и зарегистрировался.

Теперь попробуйте перейти на страницу ASP, которая вызывает компонент COM.Точки останова, установленные в файлах классов, будут задействованы, поскольку вызовы выполняются со страницы ASP.

Другие советы

Прежде всего, файл PDB (созданный во время компиляции) должен находиться в том же каталоге, что и DLL (можно установить в свойствах проекта).

Если ваш объект не использует некоторые специфичные для ASP функции (объекты Request, Response, Session), вы можете скопировать его код вызова в файл .vbs и выполнить отладку с помощью настройки cscript.exe ваш.vbs в качестве целевой программы отладки.

Есть пояснения(например), как отлаживать библиотеки DLL ISAPI — они применимы и к вашему COM-объекту (с точки зрения ОС/отладчика обе библиотеки DLL загружаются в процесс IIS).Обратите внимание на версию IIS, а также на внутрипроцессные и внепроцессные процессы.

И, наконец, если ничего не помогает, вы можете добавить логирование через Выходная строка отладки функцию и посмотрите ее бесплатно Дебагвиев программа.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top