Author |
Topic |
|
johannv
1 Posts |
Posted - 09 Oct 2003 : 13:39:42
|
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
|
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. |
|
|
rdall
16 Posts |
Posted - 28 Apr 2006 : 19:39:51
|
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
|
|
|
ctacke
877 Posts |
Posted - 28 Apr 2006 : 19:57:01
|
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. |
|
|
rdall
16 Posts |
Posted - 01 May 2006 : 11:44:15
|
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
|
|
|
ctacke
877 Posts |
Posted - 01 May 2006 : 11:57:07
|
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). |
|
|
akidder
1519 Posts |
Posted - 14 Sep 2010 : 11:02:31
|
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. |
|
|
|
Topic |
|