CRT and C++ Changes in Windows Embedded Compact 2013


To better align with Windows desktop and Visual Studio 2013, Windows Embedded Compact 2013 has made significant changes in CRT and C++. This section lists the main differences in how Compact 2013 and Compact 7 implemented CRT and C++ support.

Compact 2013 supports almost 95 percent of the CRT and C++ functions available on Windows desktop with no difference in implementation, which lets you share application code between Windows desktop and Compact 2013. In addition, all documentation for Compact 2013 CRT and C++ is completely integrated into Visual Studio 2013, so you only have to check one resource for CRT and C++ information. For more information, see CRT and C++ Differences from Windows Desktop.

To avoid conflict with Windows desktop library files, Compact 2013 has revised the C and C++ libraries. You can find details about the new library files in C and C++ Libraries for Windows Embedded Compact, but the most important changes are listed below:

  • In Compact 2013, the library file fulllibc.lib has been split into two files:
    • Bootcrt.lib contains only those CRT APIs used by the kernel module and boot loader.
    • Msvcrt.dll contains all the supported CRT APIs needed to build and run the OS.
  • In Compact 2013, there are now two types.h files:
    • The types.h file that was located under %_WINCEROOT%\public\common\sdk\inc in Compact 7 has been renamed cetypes.h. If you used the types.h file in Compact 7, you should change the include statements to use cetypes.h instead.
    • The new types.h file that is located under %_WINCEROOT%\public\common\sdk\crt\include\sys in Compact 2013 is the CRT header file. If you need the types.h file from Windows desktop, you should use this types.h file.

The following is a list of additional changes in CRT implementation in Compact 2013:

  • The _DLLEntryCRTStartup function has been removed. If you use the DLLENTRY macro, see DLLENTRY for information on how to update this macro.