Click here to learn
about this Sponsor:
Home  |  News  |  Articles  |  Polls  |  Forum  |  Directory

Keywords: Match:
Will my application run on Windows CE?
by Mike Hall (May 23, 2007)

Foreword: In this interesting article, Windows Embedded technical product manager Mike Hall examines a fundamental difference between Windows CE and the Windows desktop and Windows Mobile operating systems. Namely: you can't be certain a Windows CE application will run on any specific Windows CE image.



Will my application run on Windows CE?

by Mike Hall


Windows Desktop (XP/Vista) and Windows Mobile have the benefit of being a well defined application platform, if you write an application to run on Windows Vista then you know that the same application will also run on another PC running Vista. If you write a Windows Mobile 6 Professional (Pocket PC) application then you know that the same application will also run on other WM 6 Professional devices (assuming that you have catered for different screen resolutions, DPI, orientation etc...). The point being that the underlying API set for the "platform" is very well defined. This isn't the case on Windows "Embedded" CE.

CE 6.0 is an operating system that can be customized by developers by choosing the set of underlying o/s components they need for their device, this in turn drives the exposed API set for a specific operating system image. There isn't a concept of a "Standard Windows CE Platform" (unless you consider Windows Mobile to be that standard platform). Application developers don't know whether an application they have written for one custom Windows CE platform will run on another platform since the underlying components and therefore API's are probably going to be different across the devices.

This isn't strictly true of course. In many respects the .NET Compact Framework does add an application compatibility layer to the operating system at two levels, the first is the .NET Compact Framework and exposed assemblies/classes. Since the Compact Framework isn't componentized you know for sure that a .NET Compact Framework application written for one device will run on another device that includes the framework, assuming that the application doesn't p/invoke out to operating system specific APIs. The second level of compatibility is the underlying dependencies that are added to the operating system through adding the .NET Compact Framework to a Windows CE operating system image, knowing that the .NET Compact Framework is on an embedded device gives you a known set of native code APIs to call on the operating system.

So how do you know whether your application is going to run on a device? One way to find out is to copy the application (and support files) to the device and run the application, this could give one of two results, either the application crashes with an "Invalid Operation" error message, or appears to run correctly. I say "appears" to run, because it's possible that you haven't tested all code paths within the application, or didn't dynamically load a DLL that calls into missing operating system functions (and then causes the application failure).

An application developer may well build and test their application on a specific configuration of the CE 6.0 operating system. Once the application is written the import tables of the application and support binaries could be used to build a list of needed DLLs and exposed functions (take a look at "Dumpbin /imports").

This list could then be compared against a specific platform by writing an o/s 'checker' tool, which would need to be Win32, C/C++, and not rely on any specific o/s technologies beyond reading a text file containing the list of DLL's and functions. The utility could read the name of a DLL and the names of exposed functions and try loading the DLL (LoadLibrary) and then check to see if the exposed function was there (GetProcAddress). If all DLL's exist, and all functions return with a valid address then you are in business.

Of course, the alternative is to get a list of known operating system components (SYSGENs) needed by your application and provide this to the company building the embedded device.


Copyright (c) 2007 Microsoft Corp. All rights reserved. Reproduced by WindowsForDevices.com with permission. This article was originally published on Mike Hall's Blog, here.



About the author: Mike Hall is Technical Product Manager in Microsoft's Mobile and Embedded Devices Group, on the Windows Embedded team. Among other things, he writes an extensive (and often entertaining) blog that's published on Microsoft's MSDN developer website.



Related stories:

(Click here for further information)


Windows XP for Embedded Applications
This white paper describes the benefits of using Windows XP when developing embedded applications.

A Manager's Guide to Selecting a Mobile Device Operating System
This white paper offers a comparative review of Microsoft Windows CE and Windows Mobile.

Visual Basic 6.0 to .NET Migration
This paper focuses on the methodology and techniques which Infosys (Microsoft Technology Center) has developed for migrating VB 6.0 Applications to .NET. Our approach ensures a smooth, cost effective, and efficient migration.

Mobile Device Security: Securing the Handheld, Securing the Enterprise
This whitepaper identifies security threats to corporate data on mobile devices and details how mobile devices can become a "backdoor" to the enterprise.

Mobile Device Security: The Eight Areas of Risk
It's common knowledge that adding mobile devices to your network increases security risks. There are multiple facets to mobile security, all of which should be paid close attention to. This E-Guide presents a more in depth look into the eight key areas of securing wireless devices.

Quality Assurance and .NET
This paper discusses best practices for functional, regression and load testing of .NET applications.

SCADA Security in Integrated Networks
As businesses leverage their SCADA systems by integrating them into the business networks, they must also assure the security of the SCADA system.

The Advantages of Small Form Factor HMI
HMIs have mutated and changed with new requirements, and they have become more flexible and capable. And while they've been doing that, they've become smaller and more useful.

9 Critical Requirements for Web Application Security
Learn why your Web applications expose dangerous security breaches and what’s required to effectively protect your Web applications and the sensitive information behind them.

 


Got a HOT tip?   please tell us!
Free weekly newsletter
Enter your email...
Click here for a profile of each sponsor:
PLATINUM SPONSORS
(Become a sponsor)

ADVERTISEMENT
(Advertise here)


Updated! The latest Windows-powered...

mobile phones!

other cool
gadgets

HOT TOPICS
Microsoft targets PNDs with new embedded OS
Microsoft tips .NET MF 3.0 highlights
Microsoft previews Windows Embedded Standard
Microsoft offers free Windows CE 6.0 textbook
Microsoft renames embedded operating systems
Microsoft unveils Windows Mobile 6.1
New Atom models target low-cost PCs
REFERENCE GUIDES
Windows Device Showcase
Intro to Windows Embedded
Intro to Shared Source
Real-time Windows Embedded
Windows Embedded books
Join our Windows Embedded discussion forums:
Windows XP Embedded
Windows CE
Windows Mobile


Windows Embedded developer newsgroups
Windows CE
XP Embedded
PocketPC
Smartphone

Microsoft's Windows Embedded resources
Embedded dev center
Mobile dev center
Windows CE tutorials
XP Embedded tutorials
Windows Embedded seminars
Windows Embedded application categories
3rd-party partners


BREAKING NEWS

• Windows CE tracks trucks, trailers
• Microsoft unveils Windows CE BSP, driver databases
• Free netbook with HSPA cellular contract?
• Fox has Windows Mobile "scoop"
• "3.5-inch" SBC has DVI port
• All-in-one PC sports dual cores
• "Green" integrated PC runs Windows XP Embedded
• Low-cost SSDs target netbooks
• Video discusses forward driver ports
• Nettop is "almost fanless"
• App edits Office docs on smartphones
• HTC phones rev'd to Windows Mobile 6.1
• MID revs to Atom, HSDPA
• 3D world demo'd on Windows Mobile device
• HTC keeps non-touchscreen faith


MOST POPULAR (last 90 days)
• "Netbook" uses Intel's Atom N270
• Updated! Windows Mobile Showcase
• iPhone-like Windows Mobile device has 16GB of storage
• Windows Mobile 6.1 phone has GPS
• Windows Mobile trouncing the iPhone?
• Updated! Windows-powered mobile tablets, webpads, UMPCs, and MIDs
• HTC phone has slide-out keyboard and TV output
• T-Mobile's Touch Diamond clone does HSUPA
• Intel's Atom powers mini-ITX board
MOST POPULAR (Classics from the vault)
The Windows Mobile Phones Showcase
Windows XP Embedded USB boot
Troubleshooting Windows XPe's blue screen "Stop 0x0000007B" error
Asus reveals $190 mini notebook
Windows Mobile 6 SDKs available for download
HTC adds GPS to Windows Mobile Touch line
Windows Mobile VPN client plays with Cisco
Guide to HTC's Windows Mobile smartphone platforms
Customizing Windows XP Embedded thin clients
Microsoft unveils Windows Mobile 6.1
The Windows Mobile Pocket PCs Showcase

Also visit our sister sites:


Sign up for WindowsForDevices.com's...

news feed

Home  |  News  |  Articles  |  Polls  |  Forum  |  Directory  |  About  |  Contact
 

Ziff Davis Enterprise Home | Contact Us | Advertise | Link to Us | Reprints | Magazine Subscriptions | Newsletters
Tech RSS Feeds | White Papers | ROI Calculators | Tech Podcasts | Tech Video | VARs | Channel News

Baseline | Careers | Channel Insider | CIO Insight | DesktopLinux | DeviceForge | DevSource | eSeminars |
eWEEK | Enterprise Network Security | LinuxDevices | Linux Watch | Microsoft Watch | Mid-market | Networking | PDF Zone |
Publish | Security IT Hub | Strategic Partner | Web Buyer's Guide | Windows for Devices

Developer Shed | Dev Shed | ASP Free | Dev Articles | Dev Hardware | SEO Chat | Tutorialized | Scripts |
Code Walkers | Web Hosters | Dev Mechanic | Dev Archives | igrep

Use of this site is governed by our Terms of Service and Privacy Policy. Except where otherwise specified, the contents of this site are copyright © 1999-2008 Ziff Davis Enterprise Holdings Inc. All Rights Reserved. Reproduction in whole or in part in any form or medium without express written permission of Ziff Davis Enterprise is prohibited. Windows is a trademark or registered trademark of Microsoft Corporation in the United States and/or other countries and is used by WindowsForDevices under license from owner. All other marks are the property of their respective owners. WindowsForDevices is an independent publication not affiliated with Microsoft Corporation.