Como objeto COM de depuração no Visual Studio 6.0 que é criado em uma página ASP?

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

  •  21-08-2019
  •  | 
  •  

Pergunta

Eu tenho um componente COM old C ++ que tem que ficar em formato Visual Studio 6.0. Eu não posso para a vida de me descobrir como depurar o código no componente COM real.

Eu sou capaz de construí-lo no modo de depuração, adicionar pontos de interrupção e anexá-lo ao processo dllhost.exe, mas o ambiente Visual Studio só vai me mostrar a desmontagem de dllhost.exe e não o meu código fonte (Ele também doesn 't parar nos pontos de interrupção).

Eu me lembro um tempo atrás havia uma maneira de fazer IIS (ou inetinfo.exe) a destino de sua ação de depuração (ou seja, quando o Visual Studio 6.0 pede-lhe para o executável para lançar o seu dll) e IIS seria executado em um único modo de processo. Houve uma chave do registro que você precisava para a mudança, mas googling não ajudou.

Foi útil?

Solução

Se é um componente COM VB6 base, você pode abrir o projeto em VB6 e executá-lo (um projeto DLL não pode ser executado). As propriedades do projeto tem alguma opção em que ele pode ser solicitado a executar para que seja executada e regista-se.

Agora, tentar bater a página ASP, que faz uma chamada para o componente COM. Os pontos de interrupção definidos nos arquivos de classe vai ser atingido, como as chamadas são feitas a partir da página ASP.

Outras dicas

Em primeiro lugar, arquivo PDB (produzido durante a compilação) deve estar no mesmo diretório com DLL (pode ser definido nas propriedades do projeto).

Se o seu objeto não usar alguma funcionalidade específica da ASP (Request, Response, Session objetos) você pode copiar seu código de invocação a arquivo.vbs e depurar através da definição cscript.exe your.vbs como programa de destino de depuração.

Existem explicações ( por exemplo ) como DLLs de depuração ISAPI - são aplicáveis ??ao seu objeto cOM também (a partir de OS / ponto depurador de vista tanto são DLLs carregado no processo do IIS). Coloque a atenção para o seu IIS versão e / stuff out-of-process.

E finalmente, se nada mais ajuda, você pode adicionar um pouco de registro via OutputDebugString função e vê-lo em livre DebugView programa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top