locked
Attempting to port to WinCE 6.0 RRS feed

  • Question

  • I'm an applications developer trying to get our legacy application to run on a new WinCE 6.0 device.

     

    The code has been around for sometime (it's initial base goes back to the Singer Sewing corporation over 20 years ago was ported from assembler to pure C to C++ … it even ran on OS/2 at one point!), we principally have this running in eMbedded C++ 4.20 as a large population of our hand helds still expect this.  However, in the past year I have succeed in porting this to Win Mobile 5 for the Opticon H16, and I have also brought it to the desktop so that it runs in Windows XP.

     

    We are keeping just once set of source code in our Source Safe, with certain preprocessor switches for the various flavors of Windows.

     

    Currently, the application builds with 0 warnings 0 errors in WinCE 6.0 but when it is loaded on the device, the application simply doesn't present. It doesn't seem to do anything, not even write to the text log file to let us know it is trying to instantiate.

     

    I am currently using these switches:

    DLL_DISCONNECT
    THUMB
    _THUMB_
    ARM
    _ARM_
    ARMV4I
    UNDER_CE=0x0600
    _WIN32_WCE=0x0600
    $(CePlatform)
    _AFXDLL
    UNICODE
    _UNICODE
    WINVER=0x0502
    _CRT_SECURE_NO_DEPRECATE
    _VC80_UPGRADE=0x0600

     

    The first symbol is internal to my company. DLL_DISCONNECT when set causes the application to compile & link without making any calls to our abstraction dlls for keyboard, printer, scanner, magnetic stripe reader et al. It’s set here to reduce the variables to this problem.

     

    One of my first issues is to figure out what is the correct setting for _WIN32_WCE. There seems to be great confusion about this being a hex or decimal value.  As a monkey see - monkey do hacker, I’m just guessing that I should set to 0x0600 as I have seen examples of 4.2 being expressed as 0x0420.

     

    Any help along these lines would be much appreciated, I’ve been stuck on this bloody thing for 3 days.

    Thursday, April 3, 2008 4:07 PM

All replies

  • No thoughts?

     

    I can't even get a Hello World to run on the device!

     

    As before it build 0 errors 0 warnings, but it does nothing on the device.

    Wednesday, April 9, 2008 12:13 PM
  • Most likely that’s because your device has no dependencies required to run your application. E.g. if you’re using C/C++ libraries make sure to either link to it statically or deploy it to the device. You can see DLLs your application needs by running ‘depends’ tool on it. There also can be missing APIs in the OS, not just complete DLLs missing. Another useful thing to do is to configure debugger so you can actually debug your code instead of just trying to launch it.

     

    Wednesday, April 9, 2008 5:14 PM
  • I'd be interested in how you are doing !

     

    To answer your question about _WIN32_WCE- you have obviously found the project property page configuration/resources/general which shows all your preprocessor definitions, well the one below - command line - shows the values of the #defines that are used too, and confirms your assumption that 0x600 means ce6 !

    Monday, September 1, 2008 4:04 PM