|
Originally Posted by SiGriffin
|
|
1) I don't really understand what part the SDK plays. All I have so far is the SDK for Pocket PC 2002 which came with eVT3.0. I would like to keep the app backwards compatible, so is this what I should be using or should it be the SDK for WM5? Also should I actually be using eVC4?
|
The SDK contains 2 things are that important:
- declarations/prototypes (or, how the compiler know there's such a function call MessageBox, or what PAINTSTRUCT data type is.)
- the library files or the stubs that will will need to be linked into your program code. The stubs helps resolve function calls to system dlls.
Newer versions of SDK enables you to make use of new functions that are not available in older versions. eVT 3.0 is required to compile programs for PPC2000, PPC2002. evC 4 is required for WM2003 and later. Look at the
summary that I posted over the PPCThoughts. I've a bit to say about WM5 SDK in a moment.
|
Originally Posted by SiGriffin
|
|
2) Why would the .exe run on my device but appear to be not supported on the supplied emulator?
|
This is not a bug or anything. The emulators that shipped prior to Visual Studio 2005, are
actually x86 emulators. It CANNOT run .exe file for ARM, which is what runs on your device. Therefore normally during development, one would probably have at least 2 targets for each project: emulator (Debug or Retail) and ARM (Retail).
WM5 SDK is, frankly, a pain when you don't have Visual Studio. The last time I checked, it actually required VS2005 to install. Of course, one can still have the package extracted and use it with eVC4, which is what I did. Now, the problem arises with the library files, which you'll recall, are the stubs that get binded to your code. Therefore these library files are specific to a processor type. Normally this shouldn't be a problem, since WM2003 and WM5 both uses the same processors, right? Unfortunately, the signature for WM2003 and earlier libraries are ARM; whereas in WM5 it has been changed to ARM5I (Note: I don't remember the signature exactly, but you get the point).
During my test, programs with ARM signature will run on all system; but programs with ARM5I signature will only run on WM5 system. So I guess, you can't just use WM5 SDK for all platforms, even when your program is just using a small set of functions that should actually even run on PPC2000.