Failed to load DLL 'coredll.dll': the specified module was not found. (On Windows XP)

Thanks to the guru at StackOverflow. You guys are awesome. I sent a question about the downtime of the Compact Framework application and got the answers very quickly . When I tried the proposed solution in my Windows XP development window, I get this error

Unable to load DLL 'coredll.dll': the specified module was not found. (On Windows XP)

After I ever appeared on Google, I realized that the OpenNETCF libraries are trying to run coredll.dll to determine downtime, but this DLL only comes with Windows Mobile. Since we are developing an application on a PC with Windows XP and now do not have access to the Windows CE device, we are faced with this problem.

Is there a way to get coredll.dll in Windows XP? Any other solution to this problem?

Updated : We are targeting the application on a device running on Windows Mobile 6 Professional

+4
source share
3 answers

I'm confused. The question was specifically about the Compact Framework, which is designed for Windows CE. If you don’t have the target hardware yet, use an emulator.

In this particular case, the SDF does not execute P / Invoking for this using IMessageFilter . You can easily do the same for the desktop.

But this suggests that you simply cannot develop a CF application for targeting XP. This means that if you create your application using the full infrastructure, focusing on the desktop and expect that it will only start when you receive your CE device, you will have a big surprise. If focusing on both OSs is the design goal, then there is a lot of work to do, and most user interface elements are not passed on (I would recommend using different user interface assemblies for two purposes and a common business logic).

EDIT1

I think to more fully answer the question "can I get coredll.dll for my desktop?" the answer is a resounding no. There are many reasons why this will not work (this is in the ROM, it depends on the hardware, it is not a file, but it is fixed for execution in place, it is compiled for another OS, it can be compiled for a completely different processor, etc. )

You have a couple of options. You can try to create a desktop version of coredll.dll, which exported all the functions and proxies you need for the kernel32, user32 libraries, etc. A work tray was loaded there ( tried this ).

You can try writing code that will work for both platforms . Opportunity, but also quite a challenge.

In short, if you absolutely must not attack both, you do not want to try. Get an emulator , virtual PC or some kind of eval system and specify this.

+10
source

You cannot run OpenNetCF on a Windows PC. You need to use the Windows CE emulator. It comes with the Windows CE SDK .

+2
source

Enter a code that works for both platforms.

In our solution, everything related to the touch platform is abstracted from different objects. Therefore, we have an IPlatformServices object (which returns things like IPowerManagement, IPrinter, etc.), we have two different implementations: PCPlatformServices and CEPlatformServices, and the returned one is based on the value of Environment.PlatformID. In your scenario, you want two different IdleDetector objects for CE and one for Desktop. Yes, it’s a bit of a pain to identify and abstract all of this, but you will need to do this, you want compatibility between two different platforms.

Our "PCPlatformServices" are mostly scammers in our case, since we want the compatibility on the desktop to be checked faster without interacting with the hardware (for example, application code / business logic)

0
source

All Articles