Jump to content

Embedded C++ 4.0 - Major Problems


Guest aftli

Recommended Posts

Hello everybody.

First post here. I'm an experienced C++ developer, and I normally work in Visual Studio 2003, VC7.1, or with other compilers such as gcc. I just got a new Motorola i930 smart phone for Sprint-Nextel, and I figured I'd try developing for it. I'm currently using eMbedded C++ 4.0 SP3 with ActiveSync 4.0.

I'm having major problems running my simple wizard-generated "Hello World" application using either an emulator or the device itself.

I've installed eMbedded C++ (obviously) and the Smartphone 2003 SDK. The emulator images have been installed, and I can use the shortcut placed in my start menu to start the emulator. I've run "spdps.exe /device /create" and various other command line option combinations, the result is this:

Processing files

Emulator files complete

Device files complete

Unable to provision the certificate to the device. You may need to contact the mobile operator servicing your phone

Which brings me to my first problem, which is that my device seems to be "developer locked" as they call it. Google and other forum searches have told me that my phone is indeed "developer locked" and needs to be unlocked before I can run any of my own applications for testing. I've tried running the Orangews OTA unlocker, to no avail. It has no information about my IMEI, and if I try to install their validation application to my device, the device tells me that it will not run it because it is unsigned. This seems silly to me, as the point of the validation application is obviously a step in the process of developer unlocking the device. I do plan on purchasing logo certifications for any application I might develop and distribute, so I can deal with that for now, if I could just get this emulator working...

When I try to compile my application, the compile succeeds - it compiles and links just fine. It gives me a warning about the file being signed but not timestamped:

Warning: This file is signed, but not timestamped.

But according to another Google search, this should be ok, at least for the emulator.

However, the emulator will not work. As I said previously, the emulator launches fine, and I have a fully functioning Smart Phone up on my screen (albeit without networking, Internet Explorer does not work - this is a different problem alltogether). ActiveSync will not see the emulated device (I'm not sure if it's supposed to).

I have tried various settings for the "SMARTPHONE 2003 Emulator" via the "Configure Platform Manager" menu item in the eMbedded C++ Build menu. For Transport, the listbox says "TCP/IP Transport for Windows CE", and uses a fixed address of 192.168.1.100, which is the IP address of this machine on my network. Interestingly, if I check "Fixed Port" and select Port Number 5000, and try to telnet to that port from another networked machine, the connection is refused.

For "Startup Server" in the Device Properties dialog, it says "Emulator Startup Server". I've tried selecting COM1 as my Serial Port 1, and combinations of "NAT (Outgoing only)" and "VirtualSwitch" in my Communication settings, and ActiveSync still will not see the virtual device (again, I'm not sure if it's supposed to).

At any rate, with all these settings applied, if I click "Test" in "Device Properties", everything seems OK. It transfers a few files, and starts an emulator.

If I try to modify the settings in the "SMARTPHONE 2003 Device" settings for the Windows CE Platform Manager Configuration dialog (both default settings for Microsoft ActiveSync), the test fails. My device is connected and syncing just fine with the ActiveSync program.

Using an Emulator Release build, if I select Update Remote Output File(s) from the Build menu in eMbedded C++, I get the following error:

Downloading files

The Microsoft ActiveSync connection server has failed.

Please make sure Microsoft ActiveSync is running and retry the download by Rebuild All or Update Remote Output File(s).

Also make sure that you have selected the correct platform.

Failed downloading.

So, in short, the emulator does not start. As I said, I've completely exhausted all my own ideas for Google searches on this, and I think I just don't know enough about the problem to find a solution by just searching for an answer.

Another interesting bit of information is that my installation paths are not conventional, I've changed all of them. On my system I use the root folder "Programs" instead of "Progam Files", among other things - I loathe spaces in folder names. I have tried, however, reinstalling everything to the default installation directories to no avail, so I do not think that is the problem.

Any input would be greatly appreciated, and I apologize for the long winded post, I just wanted to be sure I covered everything!

Brett

Link to comment
Share on other sites

I think you need some sort of dongle for the emulator. I tried without success also. I would concentrate on using the device itself.

You can search these forums for the method of unlocking your device and for creating a certificate if needed. Once you have done this you should be ok to run your apps.

One thing I have found is that if I use mfc in debug mode when I run the app on the device I get an error. So I use release mode to compile.

Link to comment
Share on other sites

firstly - no dongle is required

secondly - eVC4 does not connect to the emulator using ActiveSync

thirdly - the emulator does NOT (in my experience) require signing of apps

to target the emulator make sure you are compiling for x86 NOT arm - the emulator is NOT native arm emulator under eVC4, and also make sure that you are actually targetting the emulator not a device

the other thing to consider is that if the PC doesn't already have a network set up on it, then you'll need to install the Microsoft Loopback driver (basically a fake network within the local machine)

have a look at Max's tutorials (http://www.gamesforsmartphones.co.uk/tutorials.shtml) they might help you find where you are going wrong

you can do remote debugging on the device but obviously you will need to 'app unlock' it first

good luck

muff

Link to comment
Share on other sites

Okay, I got my application running in the emulator. It was a stupid error, so stupid I don't even care to mention what the problem was.

Okay, I'll mention it. In the toolbar where you specify your SDK, output type (ARM4 or emulator, etc), and device type, I had these settings:

SMARTPHONE 2003 / Win32 (WCE emulator) Release / SMARTPHONE 2003 Device

I'm used to changing these options using menus in VS2003, so I guess I just didn't see that.

But the other problem is that my phone is indeed application/developer locked. I know the phone is new, and people may not know yet, but all of the described methods either on this board or others fail with this device. For example, the Orange unlocker application, as I said before, won't run on my device, and I've tried the registry editor (which IS actually signed according to the properties in Windows) and it won't run either.

Is there any information that anybody is holding back about application unlocking these phones so far? :o Or maybe something I just haven't found?

I very much appreciate all the previous help!

Thanks!

Link to comment
Share on other sites

also, I've been unable to find information on creating certificates. Windows explorer (via right clicking the executable, selecting Properties, and going to the Digital Signatures tab) says my application compiled for ARM4 is signed (but not timestamped, as the compiler warns).

Is there a way of creating fake certificates for testing purposes, sort of like you can do with SSL?

Link to comment
Share on other sites

firstly - no dongle is required

<{POST_SNAPBACK}>

its a software loopback adapter not a hardware one. Cool. Ive never been able to get this going until now.

Thanks

Link to comment
Share on other sites

for signing you are better off actually unlocking your device

the signing system is supposed to work this way

1. purchase a developer version of the phone that is unlocked

2. develop the program

3. sign the finished program for other people to run on their non developer phones

but from the sounds of it you've got a non developer phone and want to dev with it (like most of us), so unlocking is the way to go - the only other option for working with the actual device would be to sign each exe, and as that costs money I wouldn't advise going that route

personally I've developed with the phones after unlocking them and had no problems

the currently beta VS2005 allows native ARM debugging in the emulator tho so things will improve in the future

personally nowadays I developed my own way for doing all the game development in windows Visual C++, then recompiling for the phone when I want to do final testing - much, much easier

Link to comment
Share on other sites

  • 1 month later...

Seems like the emulatore in evt 3 and evt 4 'causes windows to malfunction and so has been disabled' in XP SP2 :shock:

Interestingly on my other computer where it was installed before i put SP2 on there works fine. Thank you microsoft for ruining my day.

ps. hey muff, i sold my neonode and bought a SP5 ;)

waiting for it to arive...

Link to comment
Share on other sites

Seems like the emulatore in evt 3 and evt 4 'causes windows to malfunction and so has been disabled' in XP SP2  :shock:

Interestingly on my other computer where it was installed before i put SP2 on there works fine.  Thank you microsoft for ruining my day.

ps. hey muff, i sold my neonode and bought a SP5 ;)

waiting for it to arive...

<{POST_SNAPBACK}>

Scratch that, its not (and never has been) compatible with PAE mode. The other computer is 64bit and has < 4gn memory anyway, so thats probably why it worked.

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.