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

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

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

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

16.12.2008 01:23:10
2 ОТВЕТА
РЕШЕНИЕ

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

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

2
16.12.2008 02:25:55

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

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

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

И, наконец, если ничего не помогает, вы можете добавить запись в журнал с помощью функции OutputDebugString и увидеть ее в бесплатной программе DebugView .

0
16.12.2008 06:17:44