C++托管移植常见问题

C++ 托管扩展概念
常见移植问题

本节将讨论在开始使用 C++ 托管扩展时遇到的一些常见问题和误解。

  • /clr 编译器开关是必需的。如果没有它,编译器将无法识别在 C++ 托管扩展编程中使用的任何指令、关键字和数据类型。有关 Visual Studio 项目的信息,请参见将 C++ 托管扩展支持添加到现有应用程序
  • .NET 模块用 #using 指令来引用。标准头文件不能使用 #using 指令来包含,而 .NET 模块不能使用 #include 指令来包含。
  • 所有内置构造都在命名空间内定义。此外,经常会使用 System::CollectionsSystem::IOSystem::Text 等嵌套命名空间。.NET 类型的参考帮助主题会在该主题的底部包括在其中定义这些数据类型的命名空间,但这些命名空间使用的是公共语言运行库点运算符 (.),而不是 C++ 范围解析运算符 (::)。C++ 托管扩展需要 C++ 范围解析运算符。
  • 类、结构和枚举默认为本机 C++ 类型(__gc__value 关键字除外)。(__gc 表示类,__value 表示结构和枚举。)或者,函数在默认情况下受到管理,但可以用 #pragma managed 和 #pragma unmanage 指令控制这种默认行为。
  • 如果不进行封送处理,则不能在托管函数和本机函数之间传递数据类型;强制转换将无法使用。Marshal 类提供可用于在托管函数和非托管函数之间封送数据的方法。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值