cnd*_*cnd 4 .net c++ collections c++-cli command-line-interface
我正在建立从.NET到C++的桥梁,并使用Collection作为这样的公共元素:
gcroot<System::Collections::ObjectModel::Collection<BModel::Device ^> ^> Devices;
Run Code Online (Sandbox Code Playgroud)
我正在使用gcroot因为我的c ++类没有被管理(它是MFC)但是我在访问它时遇到了麻烦.我在做的时候:
Devices[x]->devicename
Run Code Online (Sandbox Code Playgroud)
我有错误:
错误6错误C2676:二进制'[':'gcroot'未定义此运算符或转换为预定义运算符可接受的类型
所以我想我必须以某种方式访问集合元素,但不能使用这个括号:[]
那么如何访问gcroot clr集合元素呢?
当成员访问运算符->被重载时,看起来好像下标运算符[]不是,打开你的gcroot第一个.
using namespace System::Collections::ObjectModel;
Collection<BModel::Device ^> ^d = Devices;
d[0] //... this should work
Run Code Online (Sandbox Code Playgroud)
上面代表一个隐式演员(这就是你不能使用的原因auto).static_cast如果您需要单行,您可以使用:
static_cast<Collection<BModel::Device ^> ^>(Devices)[0];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1177 次 |
| 最近记录: |