应用程序的 C++ 支持¶
内核支持使用 C 和 C++ 混合编写的应用程序。不过,如果要是使用 C++,您必须对内核进行配置,让其包括对 C++ 的支持,且必须为编译系统选择一个合适的编译器。
编译系统根据文件的前缀选择编译器。以 cxx 或者 cpp 作为扩展名的文件将会使用 C++ 编译器进行编译。例如,myCplusplusApp.cpp
会被当 C++ 进行编译。
内核当前仅支持 C++ 功能的一个子集。下列特性 不 支持:
- 使用 new 和 delete 操作符进行动态对象管理
- RTTI
- 异常
- 静态全局对象销毁
内核当前支持如下功能(未详尽列举所有功能):
- 继承
- 虚函数
- Virtual tables
- 静态全局对象构建
静态全局对象构建器是在驱动程序初始化后、进入应用程序的 main()
函数前进行的初始化。因此,仅限于在应用程序代码中能够使用 C++。
注解
不要在内核、驱动或者子系统初始化代码中使用 C++。