C++ 托管扩展包括以下参考材料:
关键字
以下关键字实现 C++ 托管扩展的各种功能。
注意 所有代码示例必须用 /clr 编译器选项编译。
关键字 | 说明 |
---|---|
__abstract | 声明不能直接实例化的类。 |
__box | 在公共语言运行库堆上创建 __value 类的副本。 |
__delegate | 声明对托管类的唯一方法(函数指针)的引用。 |
__event | 声明托管类的事件方法。 |
__finally | 声明与 try 块关联的 finally 块。 |
__gc | 声明 gc 类型。 |
__identifier | 使 C++ 关键字可以作为标识符使用。 |
__interface | 声明接口。 |
__nogc | 声明不经过垃圾回收的本机 C++ 类。 |
__pin | 防止托管类的对象或嵌入对象在垃圾回收期间被公共语言运行库移动。 |
__property | 声明托管类的属性成员。 |
public、protected 和 private | 确定指定类型和方法在程序集外的可访问性。 |
__sealed | 防止 __gc 类成为基类,或防止方法被派生类中的方法重写。 |
__try_cast | 执行指定的转换,或者在转换失败时引发异常。 |
__typeof | 返回给定类型的 System::Type。 |
__value | 声明值类型。 |
属性
属性 | 说明 |
---|---|
attribute | 创建用户定义的属性。 |
杂注
杂注 | 说明 |
---|---|
managed, unmanaged | 确定代码是编译为 MSIL 还是非托管代码。 |
预处理器指令
指令 | 说明 |
---|---|
#using | 将元数据导入托管应用程序。有关更多信息,请参见托管扩展规范中的 21.4 使用 #using 导入元数据或 21.5 二进制头形式的元数据。 |
编译器选项
选项 | 说明 |
---|---|
/AI | 指定在解析传递给 #using 指令的文件引用时搜索的目录。 |
/clr | 将 C++ 和 C++ 托管扩展源代码编译为 MSIL。 |
/FU | 强制使用文件名,就如同该文件名已传递给 #using 指令一样。 |
链接器选项
选项 | 说明 |
---|---|
/ASSEMBLYMODULE | 将 MSIL 模块添加到项目的程序集。 |
/ASSEMBLYRESOURCE | 将链接从项目添加到托管资源。 |
/NOASSEMBLY | 创建本身并不是程序集但可以作为程序集一部分的 MSIL 模块 |