2013-06-18 17 views
11

Ho creato una DLL C++ da utilizzare da dot net. Quando eseguo il programma ottengo un errore, dll non trovato.dll mancate dipendenze su file Windows 7

La dll è là - ma ho controllato con Dependency Walker - e ottenuto per il seguente:

API-MS-WIN-CORE-COM-L1-1-0.DLL 
API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL 
API-MS-WIN-CORE-WINRT-L1-1-0.DLL 
API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL 
API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL 
API-MS-WIN-SHCORE-SCALING-L1-1-0.DLL 
DCOMP.DLL 

Error opening file. The system cannot find the file specified. 

Ho fatto una ricerca - a quanto pare questi sono Win 7 i file uno d ​​Ho Windows 7 - ma didn trovarli.

Cosa posso fare?

Sto usando VS2010, Windows 7

+0

è la DLL che lo richiede o è necessario viene indirettamente? Quali importazioni mancano? –

+0

Suppongo che sia indiretto. La dll dipende da Canon SDK. L'SDK, usato dal codice come una lib in C++, funziona - ma ho problemi con la DLL che ho creato per esportare la funzionalità di fnzionalità in dot net. – Thalia

+8

Questi file sono effettivamente presenti, non puoi vederli. Dipendenza Walker non è stata mantenuta da molto tempo, può fare un buon lavoro più sulle moderne versioni di Windows. Usa ProcMon di SysInternals, lo vedrai cercare la DLL e non trovarla. –

risposta

10

Dependency Walker (da qui: http://www.dependencywalker.com/) è cresciuta fuori moda. Mentre gira su win7/win8 non riesce a rilevare normali DLL da loro. Se apri la scheda "about" dell'ultima versione 2.2.6000, vedrai che è stata creata il 29 ottobre 2006. yikes. Sorpreso funziona a tutti.

È possibile ottenere lo strumento di monitoraggio del processo in diverse posizioni. Ho catturato il mio da qui: https://technet.microsoft.com/en-us/sysinternals/bb896645

Una volta ottenuto, è possibile aggiungere un filtro per "nome programma è" e quindi eseguire il programma. Vedrai cose che carica e non riesce a caricare e così via. Il risultato non è abbastanza conciso come vorresti, ma quando qualcosa fallisce, verrà elencato.

+0

Grazie per la risposta, questo tecnicamente ha già ricevuto risposta da Hans Passant nel suo commento. – Thalia

+1

Sì, ma non è possibile chiudere la domanda con un commento. Quindi, ho pensato che avrei fatto sapere alla community, che ho provato a fare lo stesso problema, ho provato il commento, ha funzionato e così ho inviato una risposta per chiarire che il commento era giusto. – LawfulEvil

+0

Dumpbin è anche a portata di mano http://stackoverflow.com/a/28304716/1272428 – rluks