Pocket PC Forum / Developers / VC++ for WinCE / July 2008
eVC: sdk question
|
|
Thread rating:  |
Acha - 21 Jul 2008 17:39 GMT Hi folks, I am trying to compile a project and this appears near the end. The .exe has been created.
An application targeting a standard SDK for windows CE .NET and built for the ARMV4I CPU cannot be run on the emulator device. In order to run this application on any cpu other than the emulator, you will have to install an SDK that is compatable with the standard SDK for windows CE .NET, then target a shadow platform pertaining to that SDK. Please see the evc help documentation for additional details.
I am completly baffled on this one. I have done a search on some of the key words "shadow platform" even emulator but found nothing. Any help would be appreciated.
Thanks,
Mike
Paul G. Tobey [eMVP] - 21 Jul 2008 18:09 GMT Don't use Standard SDK. It's not "standard", nor is it the SDK for any real device. Windows CE is not like desktop Windows. There's not a huge set of things that every computer you want your code to run on will have. Windows CE is *entirely* under the control of the device OEM. He might have display support, OR NOT. Further, there might be support for windows, dialogs, message loops, OR NOT. It should be clear that, in this situation, you must have a specific SDK for a specific device. Windows Mobile devices, since they are all supposed to be relatively standard, all share the same basic SDK, but that's the exception, when you're talking about general Windows CE-based devices. Each device OEM should have an SDK for each device they sell and you need to use the right one to make your EXE.
The real problem here is that the emulator that eVC knows about is **X86**-based, NOT ARM-based. The EXE that you generate for ARM probably would run, assuming that the emulator target you actually try to run it on has the Standard SDK components built into its operating system. However, eVC doesn't know about the ARM emulator and can't do the right thing with it. Why the error message is so screwy, I suppose, is explained by the fact that eVC had been out for years before the ARM emulator was ever released, so this probably didn't get much of a test.
The basic action for you, though, is "install and use the SDK for your *actual target device*".
Paul T.
> Hi folks, I am trying to compile a project and this appears near the end. > The [quoted text clipped - 17 lines] > > Mike Acha - 22 Jul 2008 19:31 GMT Thanks Paul, I was supposidily sent the sdk and it seemed to install OK, it shows up in the help menu. I will contact the supplier with this query now I know what it is all about.
The exe does run on the target cpu.
Mike
> Don't use Standard SDK. It's not "standard", nor is it the SDK for any real > device. Windows CE is not like desktop Windows. There's not a huge set of [quoted text clipped - 43 lines] > > > > Mike Acha - 25 Jul 2008 18:49 GMT Hi Paul,
I have attached the device, I have gone to Build - Set active platform , I can see my device and have selected it. EVC locks up!
ActiveSync is working, the syncronise files option has been selected only. The question is what files should be selected? Does EVC do this automaticaly?
The other thing I have noticed - when I select the active WCE configuration and change it to my device an error message comes up. "The resource file is open for editing, continuing will unload the resource file". So I click OK, and EVC locks up again!
Mike
> Thanks Paul, I was supposidily sent the sdk and it seemed to install OK, it > shows up in the help menu. I will contact the supplier with this query now I [quoted text clipped - 51 lines] > > > > > > Mike Acha - 26 Jul 2008 11:43 GMT I can see the target CPU on remote file viewer so activesync is working.
Perhaps I should be using VS2005?
> Hi Paul, > [quoted text clipped - 66 lines] > > > > > > > > Mike Paul G. Tobey [eMVP] - 28 Jul 2008 17:02 GMT Communication with the specific device is too device-specific for us to be of any more help. I would *not* change development environments, at this point, until you have consulted with the device OEM about how to communicate with it via Platform Manager and eVC (PM is the piece that eVC uses, along with the remote tools).
If it were me, I'd first create a new project in eVC, now that you have the right SDK installed. Make sure that you select the correct processor family that matches what your target device has in the new project wizard. Once the program creation is done, there should be a drop-down listbox in the toolbar for eVC that shows devices that you may choose to target. One of them should say "My Device Type", or whatever your device is called. MAKE SURE THAT IT DOES NOT SAY ANYTHING ABOUT THE STANDARD SDK. If you have the Standard SDK installed and install another, specific device SDK, you'll get entries like My Device Type - Standard SDK. THAT IS NOT WHAT YOU WANT. Once you have selected the right SDK, there is another drop-down list in the toolbar that should allow you to choose the actual processor for which to compile and whether to do a debug or non-debug build. Make sure that you choose Debug, of course, but also the real processor in the device. For example, if one of our devices includes a custom emulator for the device, we might see x86 Emulator, *AND* x86 in the list. You have to choose the right one or your code will not run. Finally, there should be a third drop-down list in the eVC toolbar which indicates the actual target device on which to run the code. This might include My Device Type Device and My Device Type Emulator, if your device SDK has an emulator for the device. Make sure to choose My Device Type Device to select the real device.
Beyond that, again, it's device-specific. Our devices tell how to talk to them from eVC and Visual Studio in the manual; I'd assume that most devices do the same...
Paul T.
>I can see the target CPU on remote file viewer so activesync is working. > [quoted text clipped - 102 lines] >> > > > >> > > > Mike Acha - 29 Jul 2008 09:08 GMT Thanks Paul, I got it working. I am not sure how but it works!!
I downloaded SP3, tried to install it, then right at the end it said there was some script missing, so it uninstalled itself, similarily with SP4.
I tried again and it worked, so either a file was replaced by one of the SPs or my firewall finaly woke up and allowed eVc to communicate with the WCE device.
Thank you for your help.
> Communication with the specific device is too device-specific for us to be > of any more help. I would *not* change development environments, at this [quoted text clipped - 135 lines] > >> > > > > >> > > > Mike
|
|
|