可视化__gc*到新的managec++语法

visual __gc * to new manage c++ syntax

本文关键字:managec++ 语法 gc 可视化      更新时间:2023-10-16

我正在将一组旧的托管c++代码移植到新语法中。我发现有一个代码行是这样的。

bool __gc * bValue

我不知道它做什么以及如何将其转换为新语法。这是我试过的,但似乎不正确。

bool ref ^ bValue

有人帮忙吗?

在第一个代码片段中,__gc指针是指向CLR堆中布尔值的托管指针。

来自MSDN:

由于常规C++指针通常不可能精确跟踪,因此引入了__gc指针。它们是公共语言运行时垃圾收集器已知其变量的指针。强制转换__gc指针的规则比标准C++指针的规则严格得多

在C++/CLI中,ref关键字只能用于声明托管类或结构。因此,您应该从第二个代码片段中删除ref关键字。并且只剩下^,因为它是一个托管指针。

bool^ bValue;