1
votes

I have a dll file which when I try to load using LoadLibrary works fine. I am able to call the functions in the loaded dll successfully. However when I try to use dependency walker on this dll it shows me a bunch of missing dll's and some symbols within some dll's.

I know I can safely ignore these, however I'd like to know why would this happen? I tried to parse through the PE headers import directory and I get similar results as dependency walker too.

Any pointers?

1

1 Answers

0
votes

I think you're seeing part of the Windows implementation, and this is because Dependency Walker doesn't know the exact OS rules but LoadLibrary does. Some of those "fake imports" may exist for compatibility reasons, to support apps which make unfounded assumptions about Windows DLL's.

MSDN documents against which DLL's you should link. They usually forward to other DLL's. Please don't hardcode those implementation DLL's. Your company is probably not important enough for Microsoft to add compatibility hacks when the implementation DLLs change.