developing apps with embedded visual c++ ® mike shappell windows ce tools microsoft corporation...

28
Developing Apps With Developing Apps With eMbedded Visual C++ eMbedded Visual C++ ® ® Mike Shappell Mike Shappell Windows CE Tools Windows CE Tools Microsoft Corporation Microsoft Corporation 8-306 8-306

Upload: ashleigh-clower

Post on 31-Mar-2015

224 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Developing Apps With eMbedded Visual C++ ® Mike Shappell Windows CE Tools Microsoft Corporation 8-306

Developing Apps With Developing Apps With eMbedded Visual C++eMbedded Visual C++®®

Mike ShappellMike ShappellWindows CE ToolsWindows CE ToolsMicrosoft CorporationMicrosoft Corporation

8-3068-306

Page 2: Developing Apps With eMbedded Visual C++ ® Mike Shappell Windows CE Tools Microsoft Corporation 8-306
Page 3: Developing Apps With eMbedded Visual C++ ® Mike Shappell Windows CE Tools Microsoft Corporation 8-306

AgendaAgenda

Embedded Visual C++ 3.0Embedded Visual C++ 3.0 Goals for the 3.0 releaseGoals for the 3.0 release New features in 3.0 releaseNew features in 3.0 release Supported WindowsSupported Windows®® CE platforms CE platforms

Porting Code to Windows CEPorting Code to Windows CE Pocket PC EnhancementsPocket PC Enhancements

OverviewOverview MFC/ATL enhancementsMFC/ATL enhancements ROM runtime matrixROM runtime matrix

Porting Code to Pocket PCPorting Code to Pocket PC

Page 4: Developing Apps With eMbedded Visual C++ ® Mike Shappell Windows CE Tools Microsoft Corporation 8-306

Goals For The 3.0 ReleaseGoals For The 3.0 Release

EVC will be a world class development EVC will be a world class development tool for embedded developers targeting tool for embedded developers targeting Windows CE 3.0Windows CE 3.0

EVC will be everything an embedded EVC will be everything an embedded developer needs to start writing developer needs to start writing C++ codeC++ code

EVC will be a quality experience for EVC will be a quality experience for the developerthe developer

Page 5: Developing Apps With eMbedded Visual C++ ® Mike Shappell Windows CE Tools Microsoft Corporation 8-306

New Features In 3.0 ReleaseNew Features In 3.0 Release

A Complete Suite of Development ToolsA Complete Suite of Development Tools Includes Visual BasicIncludes Visual Basic®® and Visual C++ and Visual C++ Tools are stand-alone, no dependenciesTools are stand-alone, no dependencies

Embedded Visual C++ includes SP3 fixesEmbedded Visual C++ includes SP3 fixes Works side-by-side with Visual Studio 6.0Works side-by-side with Visual Studio 6.0

Includes HPCPRO, PSPC and PPC SDKsIncludes HPCPRO, PSPC and PPC SDKs Documentation improved and stand-aloneDocumentation improved and stand-alone

Page 6: Developing Apps With eMbedded Visual C++ ® Mike Shappell Windows CE Tools Microsoft Corporation 8-306

Documentation ChangesDocumentation Changes

Page 7: Developing Apps With eMbedded Visual C++ ® Mike Shappell Windows CE Tools Microsoft Corporation 8-306

New Features In 3.0 IDENew Features In 3.0 IDE

Stand-alone FeaturesStand-alone Features Removed Win32Removed Win32®® “clutter” from the IDE “clutter” from the IDE Promoted embedded elements to top levelPromoted embedded elements to top level Improved remote Ethernet connectivityImproved remote Ethernet connectivity

No longer requires WINS, DHCP, DNS, etc.No longer requires WINS, DHCP, DNS, etc.

WIN32_PLATFORM_XXX MacrosWIN32_PLATFORM_XXX Macros HPC, HPCPRO, PSPC and UNKNOWNHPC, HPCPRO, PSPC and UNKNOWN

Common Executable Format SupportCommon Executable Format Support

Page 8: Developing Apps With eMbedded Visual C++ ® Mike Shappell Windows CE Tools Microsoft Corporation 8-306

New Features In 3.0 IDENew Features In 3.0 IDE

Page 9: Developing Apps With eMbedded Visual C++ ® Mike Shappell Windows CE Tools Microsoft Corporation 8-306

Supported CE PlatformsSupported CE Platforms

Windows CE 2.0Windows CE 2.0 Hand-held PC 2.0Hand-held PC 2.0 Palm-size PC 1.0Palm-size PC 1.0

Windows CE 2.11Windows CE 2.11 Hand-held PC 3.0Hand-held PC 3.0 Palm-size PC 1.2Palm-size PC 1.2 Platform Builder 2.11Platform Builder 2.11

Windows CE 2.12Windows CE 2.12 Platform Builder 2.12Platform Builder 2.12

Windows CE 3.0Windows CE 3.0 Pocket PC 2.0Pocket PC 2.0 Platform Builder 3.0Platform Builder 3.0

Page 10: Developing Apps With eMbedded Visual C++ ® Mike Shappell Windows CE Tools Microsoft Corporation 8-306

Porting Code To Porting Code To Windows CEWindows CE Create MFC Application for DesktopCreate MFC Application for Desktop Take a Look at Application on DesktopTake a Look at Application on Desktop Convert Application to Windows CEConvert Application to Windows CE

Create new empty project using wizardCreate new empty project using wizard Add all desktop files to empty projectAdd all desktop files to empty project Add support for pre-compiled headersAdd support for pre-compiled headers Add support for the CE command barAdd support for the CE command bar

Take a Look at Converted ApplicationTake a Look at Converted Application

Page 11: Developing Apps With eMbedded Visual C++ ® Mike Shappell Windows CE Tools Microsoft Corporation 8-306

Convert Desktop CodeConvert Desktop Code

Changes required to mainfrm.cppChanges required to mainfrm.cpp Add Windows CE command bar supportAdd Windows CE command bar support Disable dockable toolbar supportDisable dockable toolbar support

Changes required to mainfrm.hChanges required to mainfrm.h Add CCeCommandBar definitionAdd CCeCommandBar definition

Changes required to sample.cppChanges required to sample.cpp Disable 3D control calls for Windows CEDisable 3D control calls for Windows CE

Page 12: Developing Apps With eMbedded Visual C++ ® Mike Shappell Windows CE Tools Microsoft Corporation 8-306

mainfrm.cppmainfrm.cpp

Convert Desktop CodeConvert Desktop Code

Page 13: Developing Apps With eMbedded Visual C++ ® Mike Shappell Windows CE Tools Microsoft Corporation 8-306

mainfrm.hmainfrm.h

sample.cppsample.cpp

Convert Desktop CodeConvert Desktop Code

Page 14: Developing Apps With eMbedded Visual C++ ® Mike Shappell Windows CE Tools Microsoft Corporation 8-306

Pocket PC OverviewPocket PC Overview

Next Generation Palm Size DeviceNext Generation Palm Size Device New, Simplified User InterfaceNew, Simplified User Interface

Requires changes to existing codeRequires changes to existing code New user interface elements addedNew user interface elements added

Many Performance ImprovementsMany Performance Improvements Professional and Standard VersionsProfessional and Standard Versions Tools Support Available at LaunchTools Support Available at Launch

Page 15: Developing Apps With eMbedded Visual C++ ® Mike Shappell Windows CE Tools Microsoft Corporation 8-306

Pocket PC User InterfacePocket PC User Interface

Page 16: Developing Apps With eMbedded Visual C++ ® Mike Shappell Windows CE Tools Microsoft Corporation 8-306

IDE Changes For Pocket PCIDE Changes For Pocket PC

MFC and Win32 Wizard for Pocket PCMFC and Win32 Wizard for Pocket PC Generate code for Pocket PC featuresGenerate code for Pocket PC features New resource formats for menu barsNew resource formats for menu bars

New Menu Bar Editor for Pocket PCNew Menu Bar Editor for Pocket PC Supports new SHMENU resource formatSupports new SHMENU resource format

More Robust Emulation EnvironmentMore Robust Emulation Environment

Page 17: Developing Apps With eMbedded Visual C++ ® Mike Shappell Windows CE Tools Microsoft Corporation 8-306

MFC EnhancementsMFC Enhancements

All Windows/Dialogs are Full-ScreenAll Windows/Dialogs are Full-Screen All UI Elements are Drawn Flat (no 3D)All UI Elements are Drawn Flat (no 3D) Window Borders Have Been RemovedWindow Borders Have Been Removed Single Application Instance SupportSingle Application Instance Support Transparent Support for New Menu BarTransparent Support for New Menu Bar Support for Pocket PC Document ListSupport for Pocket PC Document List Tap and Hold Context Menu SupportTap and Hold Context Menu Support

Page 18: Developing Apps With eMbedded Visual C++ ® Mike Shappell Windows CE Tools Microsoft Corporation 8-306

ROM Runtime MatrixROM Runtime Matrix

Standard ROMStandard ROM CEF TranslatorCEF Translator

Professional ROMProfessional ROM CEF TranslatorCEF Translator MFC/ATLMFC/ATL Visual BasicVisual Basic ADOCEADOCE

Page 19: Developing Apps With eMbedded Visual C++ ® Mike Shappell Windows CE Tools Microsoft Corporation 8-306

Porting Code tTo Pocket PCPorting Code tTo Pocket PC

Start with Our Converted ApplicationStart with Our Converted Application Look at Application After Re-compilingLook at Application After Re-compiling Convert Application to the Pocket PCConvert Application to the Pocket PC

Add document list supportAdd document list support Add support for the OK buttonAdd support for the OK button

Take a Look at Pocket PC ApplicationTake a Look at Pocket PC Application

Page 20: Developing Apps With eMbedded Visual C++ ® Mike Shappell Windows CE Tools Microsoft Corporation 8-306

Re-Compiled For Pocket PCRe-Compiled For Pocket PC

Page 21: Developing Apps With eMbedded Visual C++ ® Mike Shappell Windows CE Tools Microsoft Corporation 8-306

Convert Application CodeConvert Application Code

Changes required to sample.cppChanges required to sample.cpp Add document list supportAdd document list support Disable automatic file newDisable automatic file new

Changes required to sampleview.cppChanges required to sampleview.cpp Add OK button to new viewsAdd OK button to new views

Changes required to sample.rcChanges required to sample.rc Add support for extension filteringAdd support for extension filtering

Page 22: Developing Apps With eMbedded Visual C++ ® Mike Shappell Windows CE Tools Microsoft Corporation 8-306

sample.cppsample.cpp

Convert Application CodeConvert Application Code

Page 23: Developing Apps With eMbedded Visual C++ ® Mike Shappell Windows CE Tools Microsoft Corporation 8-306

sample.rcsample.rc

sampleview.cppsampleview.cpp

Convert Application CodeConvert Application Code

Page 24: Developing Apps With eMbedded Visual C++ ® Mike Shappell Windows CE Tools Microsoft Corporation 8-306

NotePad+ ApplicationNotePad+ Application

Page 25: Developing Apps With eMbedded Visual C++ ® Mike Shappell Windows CE Tools Microsoft Corporation 8-306

Common Executable FormatCommon Executable Format

Common Executable Format (CEF)Common Executable Format (CEF) CPU Transparency Within a PlatformCPU Transparency Within a Platform

Existing executables work on new CPUsExisting executables work on new CPUs Executables are translated to native onceExecutables are translated to native once Translation can occur on host or deviceTranslation can occur on host or device

Performance and Size are ImportantPerformance and Size are Important Both are with-in 20% of native executableBoth are with-in 20% of native executable

Page 26: Developing Apps With eMbedded Visual C++ ® Mike Shappell Windows CE Tools Microsoft Corporation 8-306

CEF Translation ProcessCEF Translation ProcessDesktop (Host) TranslationDesktop (Host) Translation Device Side TranslationDevice Side Translation

DeviceDevice

CEF PECEF PE PDBPDB

TranslatorsTranslators CPU-Specific CPU-Specific TranslatorsTranslators

NativeNative PEPE

NativeNativePDBPDB

DeviceDevice

CEF PECEF PE

TranslatorTranslatorSingle Single Translator Translator on deviceon device

CABCAB

Native Native PEPE

NativeNativePEPE

Page 27: Developing Apps With eMbedded Visual C++ ® Mike Shappell Windows CE Tools Microsoft Corporation 8-306

FeedbackFeedback

Suggestions (Suggestions ([email protected]@microsoft.com))

Bug Report (Bug Report ([email protected]@microsoft.com)) Submit Problem Report on Help MenuSubmit Problem Report on Help Menu

Page 28: Developing Apps With eMbedded Visual C++ ® Mike Shappell Windows CE Tools Microsoft Corporation 8-306