Debug di Visual Studio 2005 VB con DLL c ++ - Debug in linguaggio misto
-
20-08-2019 - |
Domanda
Ho un progetto vb che chiama funzioni in una dll. La dll viene creata in un progetto separato vs (portaudio), che è scritto in c.
Il progetto dll c viene compilato in modo pulito e crea la dll richiesta, che al momento sto trascinando in c: \ windows \ system per vb runtime può vederlo.
Il progetto VB vive in c: \ devprojects \ vbtest
C Il progetto vive in c: \ devprojects \ portaudio con il file di progetto in c: \ devprojects \ portaudio \ build \ msvc. DLL creata in Win32 \ debug in questa directory msvc.
Quando chiamo la funzione dll, è possibile che il debugger vs passi attraverso la funzione c nella dll: ho tutto il codice ecc., ma non so se VS2005 supporta questo tipo di debug in linguaggio misto.
Se questo è possibile, potresti consigliarmi come devo impostare Visual Studio per raggiungere questo obiettivo.
Mille grazie David
Soluzione
Non è necessario avere entrambi i progetti nella stessa soluzione, ma è necessario compilare entrambi i progetti con i simboli di debug abilitati.
Ora nella tua soluzione di rete VB Progetto / Proprietà, nella scheda Debug assicurati che " Abilita il debug del codice non gestito " è selezionato.
Assicurati anche che la dll caricata sia nello stesso posto in cui è stata compilata, altrimenti potrebbe non trovare il pdb in cui sono memorizzati i simboli di debug.
Altri suggerimenti
Crea una soluzione con entrambi i progetti, aggiungi il riferimento nel progetto VB al progetto C usando la finestra di dialogo "Aggiungi riferimento .." - > Proiettali e costruiscili tutti in modalità debug.
Come si chiama Cll da VB?
Se è VB.NET, questo è molto semplice, basta impostare una soluzione con entrambi i progetti al suo interno, impostare le loro dipendenze e assicurarsi che al momento della compilazione della versione di debug del progetto VB si colleghi alla lib / dll di debug prodotta da il tuo progetto C ++. Visual Studio fa il resto.
L'ho già fatto un paio di volte con applicazioni C # che chiamavano una DLL C ++. Non avevo intenzione di configurarlo, ma ho provato a passare attraverso il debug supponendo che avrei ottenuto l'elenco dell'assembly e almeno avrei potuto capire qualcosa di ciò che non andava nel mio codice ... tuttavia ha caricato il file .cpp corretto e mi ha permesso di continuare a sfogliare quel codice.