All Forums
 Microsoft Windows CE
 CE Downloads and Documents
 Determining the DLLs your application uses
 Forum Locked
 Send Topic to a Friend
 Printer Friendly
Author Topic  

johannv

1 Posts

Posted - 09 Oct 2003 :  13:39:42  Show Profile  Email Poster
Developed a dialog based app using MFC linked in as a static library. Ported it to CE device and it reported missing components upon execution startup. Running depends.exe on the executable it list two DLL's coredll.dll and commctrl.dll. Were can I find these DLL's for the ARM processor. Thanks in advance.
Johann

ctacke

877 Posts

Posted - 10 Oct 2003 :  10:47:37  Show Profile  Email Poster
All CE devices have coredll.dll as it is the OS kernel. All ADS devices also have commctrl.dll. You can verify the existence of both on your device by running dir /ash \Windows\*.dll from the command prompt on the device.

Since your app is MFC make sure that if you are running on a CE 4.x device that the app was compiled with eVC 4.0 and if it's running on CE 3.0 then it was compiled with eVC 3.0 as they must link to different libraries.

Also make sure that if you're using a Debug build you have copied the debug version of MFC (mfcce400d.dll or mfcce300d.dll) to the device.
Go to Top of Page

rdall

16 Posts

Posted - 28 Apr 2006 :  19:39:51  Show Profile  Email Poster
Using Bitsy Xb with Windows CE 5.0.
Porting an application which builds OK for PocketPC 2005.
Trying to find out which DLLs it is missing so I can disable calls to these.
Working blind here, only have "missing component" message to go on (or apparently equivalent cryptic error code from VS2005 that suggests reinstalling VS2005, but according to MS this is a bug and the code indicates a missing DLL).
Are there any tools which tell me exactly what components the debug build
is trying to load? Does this "depends.exe" help with this, if so where can I find it?
Any good resources explaining how to migrate from Pocket PC to CE, have searched but do not find.

Thanks in advance,
Rick
Go to Top of Page

ctacke

877 Posts

Posted - 28 Apr 2006 :  19:57:01  Show Profile  Email Poster
Depends.exe (found at C:\Program Files\Microsoft eMbedded C++ 4.0\Common\Tools) or dumpbin.exe /dependents (found at C:\Program Files\Microsoft eMbedded C++ 4.0\EVC\wce420\\bin) would be a good place to start. It will at least let you locate what DLLs are required.

The other thing to be aware of is that the DLLs get assembled when the image is made, so just having a DLL may not be enough - the DLL must also export the function that your app is calling. dumpbin.exe can give you the functions/ordinals that the application calls if they are statically linked, and you can compare that against a dumpbin of the SDK lib for the DLL and see if you actually have said function.

Of course if the missing function was loaded with LoadLibrary/GetProcAddress then you're out of luck going that route, but you wouldn't get the "missing component" error, but instead a runtime failure in the app.

As to the other question, I'm not aware of any specific docs on migrating from Pocket PC to a CE device.
Go to Top of Page

rdall

16 Posts

Posted - 01 May 2006 :  11:44:15  Show Profile  Email Poster
I found versions of Depends.exe both in VS2005 and VC4 trees, and run them. But it seems to be looking for dependencies on the Win32 side, and complains that all the DLLs are for X86 CPU. How can I make it analyze the exe in the target platform context?

Thanks,
Rick
Go to Top of Page

ctacke

877 Posts

Posted - 01 May 2006 :  11:57:07  Show Profile  Email Poster
It should still find the referenced library names, though it cannot find the dependencies' dependent libraries (so it will stop in the tree at coredll.dll, etc.). So it will still give you the list of DLLs you need, you just can't get info on those DLLs (like all entry points, etc). If you need that info you have to use dumpbin.exe on the appropriate SDK lib (like coredll.lib).
Go to Top of Page

akidder

1519 Posts

Posted - 14 Sep 2010 :  11:02:31  Show Profile  Email Poster
I've updated the title of this topic from "Missing DLLs" to "Determining the DLLs your application uses".

This topic is related to topics 1431 (license models), 1339 (components included in a build), and the other topics referenced by those topics.

These topics are all important to understand when selecting the build model for your production release.
Go to Top of Page
  Topic  
 Forum Locked
 Send Topic to a Friend
 Printer Friendly
Jump To:
Eurotech Support Forums © Eurotech Inc. Go To Top Of Page
This page was generated in 0.03 seconds. Snitz Forums 2000