应用程序的 C++ 支持

内核支持使用 C 和 C++ 混合编写的应用程序。不过,如果要是使用 C++,您必须对内核进行配置,让其包括对 C++ 的支持,且必须为编译系统选择一个合适的编译器。

编译系统根据文件的前缀选择编译器。以 cxx 或者 cpp 作为扩展名的文件将会使用 C++ 编译器进行编译。例如,myCplusplusApp.cpp 会被当 C++ 进行编译。

内核当前仅支持 C++ 功能的一个子集。下列特性 支持:

  • 使用 newdelete 操作符进行动态对象管理
  • RTTI
  • 异常
  • 静态全局对象销毁

内核当前支持如下功能(未详尽列举所有功能):

  • 继承
  • 虚函数
  • Virtual tables
  • 静态全局对象构建

静态全局对象构建器是在驱动程序初始化后、进入应用程序的 main() 函数前进行的初始化。因此,仅限于在应用程序代码中能够使用 C++。

注解

不要在内核、驱动或者子系统初始化代码中使用 C++。