C++ 访问命名索引属性
我使用的是一个DLL,它提供了一个类,该类具有名为Tag的命名索引属性 下面的C#代码工作得很好C++ 访问命名索引属性,c++,properties,command-line-interface,C++,Properties,Command Line Interface,我使用的是一个DLL,它提供了一个类,该类具有名为Tag的命名索引属性 下面的C#代码工作得很好 // create an instance of the class 'ticks' ... // set tag value to 46 for contract ticks.set_Tag("contract",46 ); // get tag value for contract int idx = (int)ticks.get_Tag("contract"); 我想从C++/CLI
// create an instance of the class 'ticks'
...
// set tag value to 46 for contract
ticks.set_Tag("contract",46 );
// get tag value for contract
int idx = (int)ticks.get_Tag("contract");
我想从C++/CLI中使用它
set_Tag和get_Tag方法不可见
这段代码可以很好地(或至少可以编译)设置该值
ticks->Tag["contract"] = 46;
但访问该值无法编译
int idx = ticks->Tag["contract"];
error C2440: 'initializing' : cannot convert from 'System::Object ^' to 'int'
如果我强制(强制)将其转换为int,则它包含垃圾,这可能是因为
idx
是装箱的Int32
,而不是int
。你可以用
int idx = safe_cast<int>(ticks->Tag["contract"]);
intidx=safe_cast(滴答声->标记[“合同]);
这可能是因为
idx
是一个装箱的Int32
,而不是int
。你可以用
int idx = safe_cast<int>(ticks->Tag["contract"]);
intidx=safe_cast(滴答声->标记[“合同]);
我怀念过去那些美好的日子,那时你只需要写(int),编译器自己解决所需的东西。我怀念过去那些美好的日子,那时你只需要写(int),编译器自己解决所需的东西。