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

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

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

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

Ответы [ 2 ]

2 голосов
/ 16 декабря 2008

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

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

0 голосов
/ 16 декабря 2008

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

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

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

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

...