C++ Class Wizards for Device Projects

Visual C++ device projects support a subset of the class wizards that are supported for desktop Visual C++ projects. Some wizards are not supported for device projects because of differences between the Windows and Windows CE operating systems. For more information, see Adding Functionality with Code Wizards.

Some Smart Device native application wizards do not provide the choice of both static linking and dynamic linking. The following table outlines the behavior of the Smart Device Application Wizards regarding runtime's linking:

Wizard

Notes

Win32 Smart Device Project – Windows Application

Static link. No option to dynamic/static link provided at project creation time

Win32 Smart Device Project – Console Application

Static link. No option to dynamic/static link provided at project creation time

Win32 Smart Device Project – DLL

Static link. No option to dynamic/static link provided at project creation time

Win32 Smart Device Project – Static Library

Static link. No option to dynamic/static link provided at project creation time

ATL Smart Device Project – DLL

Static link. No option to dynamic/static link provided at project creation time

ATL Smart Device Project – EXE

Static link. No option to dynamic/static link provided at project creation time

MFC Smart Device Application – SDI

Static link. No option to dynamic/static link provided at project creation time

MFC Smart Device Application – SDI w. DocList

Static link. No option to dynamic/static link provided at project creation time

MFC Smart Device Application – Dialog based

Static link. No option to dynamic/static link provided at project creation time

MFC Smart Device DLL – Regular DLL

Static link. No option to dynamic/static link provided at project creation time

MFC Smart Device ActiveX Control

Static link. No option to dynamic/static link provided at project creation time

MFC Smart Device DLL – Extension DLL

Dynamic link. No option to dynamic/static link provided at project creation time

The table refers to deployment using the F5 shortcut key. The application installation is as described in this section:

  • When you create a Smart Device CAB project for an application that is written in C++, you must manually add dependencies such as atl80.dll, mfc80U.dll, and/or msvcrt.dll) to the CAB project if you are dynamically linking to these DLLs. If you are dynamically linking, and must redistribute the DLLs in the cab, do not install the DLLs to the system directory such as \windows on the device. Instead, install the DLLs into the local application directory. If you are redistributing a suite of applications, which all dynamically link to the ATL/MFC runtimes, we recommend that you install all the applications and the run-time DLLs in a single application directory. You can then provide shortcuts to the applications which can be put in their own folders. This will save size and avoids the danger of the DLLs in the system directory being replaced later with another install of an application and breaking applications that dynamically link to the DLLs.

  • Static linking is strongly recommended in order to reduce dependencies on the MFC/ATL DLLs. If you are linking statically, the DLLs should not be redistributed with your application.

In This Section