Share via


COREDLL.DLL missing

Question

Wednesday, January 9, 2008 4:12 AM

I'm building a simple Windows C++ command line program in Visual Studio 2005 under WinXP Pro - SP2, with all the latest Windows Updates applied.

 

The build runs OK, but when I enter the debugger to test the function, I get an error popup:

 

"This application has failed to start because COREDLL.dll was not found.  Re-installing the application may fix this problem."

 

I understand that COREDLL.dll doesn't exist on Windows XP, as it is only applicable to Mobile.  How do I find the reference to it?

 

The only includes I'm using are:

#define WIN32_LEAN_AND_MEAN

#include <windows.h>

#include <stdlib.h>

#include <string.h>

#include <memory.h>

 

It seems to be associated with strcat, as the debugger opens string.h when I press the OK button on the popup.

 

Any ideas?

 

All replies (4)

Tuesday, January 15, 2008 9:02 AM âś…Answered

Use dependency walker (depends.exe) to check which module depends on coredll.dll, then check your project's additional dependencies setting, see if you have by chance added that module as dependency. If you application relies on coredll.dll directly, then check whether you have coredll.lib in the additional dependencies list, and make sure the subsystem setting is not WindowsCE.

If problem persist, please elaborate the steps to help us reproduce the issue.

hope it helps
rico


Tuesday, January 6, 2009 1:19 PM

i made a win32 programme with vs2005.  when i run it on winnt4.0, "COREDLL.dll was not found." is displayed, why?? thanks


Tuesday, January 6, 2009 1:34 PM

Coredll.dll is a system DLL that's available only on Windows Mobile.  There's never been a version of NT4 that runs on a hand-held device.  I'd guess you chose the wrong platform configuration. Hans Passant.


Tuesday, May 1, 2012 4:41 PM

I am posting this here because it seems it is a logical place to put it. I had a similar issue with a downloaded sample application in C# using coredll.dll. To fix the issue, I just found the same call in C# that was getting called for the CE and utilized that. I am posting this so other uses in the same situation might find this fix:

[DllImport("coredll.dll")]
static internal extern int GetDeviceCaps(IntPtr hdc, int nIndex);
 
[DllImport("gdi32.dll", CharSet = CharSet.Auto, SetLastError = true, ExactSpelling = true)]
static internal extern int GetDeviceCaps(IntPtr hdc, int nIndex);