views:

300

answers:

1

When running the default c++ project in Visual Studios for a Windows CE 5.0 device, I get an error complaining about missing resources. Depends says that my executable needs ayghsell.dll (the Windows Mobile shell), and CoreDll.dll. Does this mean that my executable can only be run on Windows Mobile devices, instead of any generic Windows CE installation? If that's the case, how do I create an executable targeting generic WinCE?

+3  A: 

Depends what you mean by a generic Windows CE installation. Windows CE itself is a modularised operating system, so different devices can have different modules included. Therefore each Windows CE device can have a radically different OS installed (headless even).

Coredll is the standard "common" library that gets included in a Windows CE installation, however it can contain different components depending on the other modules in the system.

If you want to target a relatively standard version of Windows CE either target the Standard SDK set of components, or go for a Windows Mobile platform.

If you have an SDK then install and use that. If none is available then you can generate an SDK using Platform Builder and the OS project files.

To get your application to work on a non-Windows Mobile installation of Windows CE you just have to remove the code that uses the aygshell library, and not link to those libraries.

Daemin
I would add that you should *never* target Standard SDK, because there is no "standard" CE configuration and it will lead to trouble.
ctacke
AYGSHELL is an optional component in CE 5.0 and later, so removing it is not always necessary and is unlikely to just make a WinMo app work under CE anyway. There are a lot more differences between WinMo and vanilla CE than just AYGSHELL.
ctacke
There is a Standard SDK, but it's not exactly a standard as such, more of a suggestion. Still it contains many things which are in just about any Windows CE OS image. So if you don't have the exact Windows CE OS SDK then using the standard one is a reasonable suggestion.
Daemin