15

I have built a C++ dll to use from dot net. When I run the progran I get an error, dll not found.

The dll is there - but I checked it with dependency walker - and got for the following:

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.

I did a search - apparently these are Win 7 files an d I have Windows 7 - but didn't find them.

What can I do ?

I am using VS2010, Windows 7

Thalia
  • 13,637
  • 22
  • 96
  • 190
  • is your DLL requiring it or it's needed comes indirectly? What imports are missing? – Balog Pal Jun 18 '13 at 21:43
  • I assume it is indirect. The dll depends on Canon SDK. The SDK, used by the code as a lib in C++, works - but I have issues with the dll I created to export the fnctionality to dot net. – Thalia Jun 18 '13 at 21:54
  • 9
    These files are actually present, you just can't see them. Dependency Walker hasn't been maintained in a long time, it can do a proper job anymore on modern Windows versions. Use SysInternals' ProcMon, you'll see it searching for the DLL and not finding it. – Hans Passant Jun 18 '13 at 22:04
  • Can someone tell me how you fixed this issue ? – josepainumkal Apr 11 '18 at 18:18
  • These files are not present on Windows 7, nor will they ever be. Hans Passant's response is entirely incorrect – Astyanax Apr 18 '21 at 10:56

1 Answers1

14

Dependency Walker (from here : http://www.dependencywalker.com/ ) has grown out of date. While it runs on win7/win8 it fails to detect normal DLLs from them. If you open up the 'about' tab of the latest version 2.2.6000, you'll see it was build on Oct 29th, 2006. yikes. Surprised it works at all.

You can get the process monitor tool at several locations. I snagged mine from here : https://technet.microsoft.com/en-us/sysinternals/bb896645

Once you've got it, you can add a filter for 'program name is ' whatever and then run your program. You'll see stuff that loads and fails to load and such. The result isn't quite as concise as you'd like, but when something fails, it'll be listed.

LawfulEvil
  • 2,267
  • 24
  • 46
  • Thank you for the answer, this technically has already been answered by Hans Passant in his comment. – Thalia May 04 '15 at 16:29
  • 1
    Yes, but you can't close out the question with a comment. So, I figured that I would let the community know, that I tried ran into the same issue, tried out the comment, it worked and so I posted up an answer to make clear that the comment was right. – LawfulEvil May 04 '15 at 16:31