【发布时间】:2015-12-04 21:41:44
【问题描述】:
我有一个 C# 项目,它像这样覆盖了数组访问 ([]):
Foo.cs:
public override FooItem this[long index] {
...
该项目被编译成一个 .dll,由我的 C++/CLI 项目引用。
我有一个非托管 C++/CLI 类 FooAccess:
FooAccess.h:
class FooAccess : NativeCPPClass { // not ref class
private:
gcroot<CSDll::Foo^> myFoo;
public:
void Accessor();
在 FooAccess.cpp 中:
void FooAccess::Accessor() {
myFoo->[0]; // doesn't work
myFoo[0]; // doesn't work
pin_ptr<FooItem^> p = &myFoo[0]; // doesn't work
我被难住了。
请注意,我不允许编辑 C# 项目,并且 C++/CLI 类不能是 ref class,因为它继承自本机类。
【问题讨论】:
标签: c# .net dll c++-cli mixed-mode