2009-02-02 17 views
5

Ho creato una dll utilizzando C++ gestito. Ora sto cercando di usarlo da C#. Ho aggiunto l'oggetto ai riferimenti del progetto. Il browser dell'oggetto mostra correttamente l'oggetto nella DLL, il percorso della DLL nel browser dell'oggetto corrisponde al percorso effettivo.Utilizzo di dll C++ gestita da C#

Tuttavia, quando si esegue il programma C# si lamenta:

Eccezione non gestita: System.IO.FileNotFoundException: il modulo specificato potrebbe non è stato trovato. (Eccezione da HRESULT: 0x8007007E)

Qualche idea su che altro deve essere fatto?

Grazie.

+0

Possiamo vedere qualche codice qui? –

risposta

6

Penso che manchi gli altri assembly o riferimenti di dll dal tuo assembly C++ gestito.

+0

Vero, una delle DLL utilizzate non era sul percorso. Grazie. –

0

L'assembly C++ gestito ha altre dipendenze, comprese le dll non gestite? Vedrai questo errore in fase di esecuzione se il tuo assembly di riferimento non riesce a caricare una dipendenza.

0

Si sta eseguendo l'applicazione in versione su una macchina senza VS installato?

chiedo solo perché mi sono imbattuto in un problema simile qui: Mixed Mode Library and CRT Dependencies - HELP

se si scorre verso il basso per la mia risposta è possibile vedere quello che ho fatto che mi ha aiutato.

0

Verificare che l'assembly C++ sia presente nella stessa cartella del programma C#. Dovrebbe essere copiato automaticamente se la proprietà 'Copia locale' è impostata su true (sul riferimento alla dll C++ nell'app C#).

Se la DLL C++ è presente, il problema più probabile è che la DLL C++ dipende da un'altra DLL non gestita che non può essere trovata (ad esempio, C# non la copierà nella cartella dell'app perché non conosce i riferimenti non gestiti). È possibile utilizzare DependencyWalker nella DLL C++ per verificare la presenza di dipendenze mancanti.

Un altro probabile problema potrebbe essere un problema con le DLL di runtime di MSVC. vedere se DependencyWalker si lamenta della mancanza dei file MSVCR * .dll, MSVCP * .dll ecc ....

Problemi correlati