Come eseguire il debug oggetto COM in Visual Studio 6.0 che si crea in una pagina ASP?

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

  •  21-08-2019
  •  | 
  •  

Domanda

Ho un vecchio C ++ componente COM che deve rimanere in Visual Studio formato 6.0. Non posso per la vita di me a capire come eseguire il debug del codice nel componente effettivo COM.

Sono in grado di costruirlo in modalità debug, aggiungere punti di interruzione e collegarlo al processo Dllhost.exe, ma l'ambiente di Visual Studio mi mostrerà solo il disassemblaggio da dllhost.exe e non il mio codice sorgente (E 'anche doesn 't fermare sui punti di interruzione).

Mi ricordo che qualche tempo fa ci fosse un modo per rendere IIS (o Inetinfo.exe) obiettivo della vostra azione di debug (vale a dire quando Visual Studio 6.0 si chiede l'eseguibile per lanciare il vostro dll) e IIS verrebbe eseguito in un unico modo di processo. C'era una chiave del Registro avevi bisogno di cambiare, ma googling non ha aiutato.

È stato utile?

Soluzione

Se si tratta di un componente COM VB6 base, è possibile aprire il progetto in VB6 ed eseguirlo (un progetto DLL non può essere eseguito). Le proprietà del progetto ha qualche opzione per cui può essere chiesto di eseguire in modo che venga eseguito e registra se stesso.

Ora, provare a colpire la pagina ASP, che effettua una chiamata a componente COM. I punti di interruzione impostati nelle file di classe saranno colpiti, in quanto le chiamate sono fatte da pagina ASP.

Altri suggerimenti

Prima di tutto, file PDB (prodotta durante la compilazione) deve essere nella stessa directory con DLL (può essere impostato nelle proprietà del progetto).

Se l'oggetto non usa alcune funzionalità ASP-specifico (Request, Response, oggetti di sessione) è possibile copiare il codice invocazione a file vbs ed eseguire il debug tramite l'impostazione cscript.exe your.vbs come programma di destinazione di debug.

Non ci sono spiegazioni ( per esempio ) come eseguire il debug DLL ISAPI - essi sono applicabili al vostro oggetto COM troppo (da OS punto / debugger di vista entrambi sono DLL caricate nel processo IIS). Mettere attenzione alla versione di IIS e in roba / out-of-process.

E, infine, se non altro aiuta, si può aggiungere un po 'di registrazione tramite OutputDebugString funzione e vederlo in DebugView programma.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top