语言不支持“ MethodName”

团结

因此,我正在通过对本机C ++代码使用包装器类来实现一些C ++ / cli和C#互操作。

我似乎无法克服错误'GetSharedData' is not supported by the language我在网上搜寻解决方案,并尝试了所有建议,但都没有碰到运气。

我的代码如下:

// c++/cli wrapper code
//
// this wraps an abstract native c++ class
public ref IHamWrapper
{
public:
    // default constructor
    IHamWrapper(){}
    // copy constructor
    IHamWrapper(const IHamWrapper%) {}
    // overloaded ()
    IHamWrapper operator () (NativeCode::INativeClass* data)
    {
        IHamWrapper ham;
        ham.hamData = data;
        return ham;
    }
    bool MethodA(){ wrappedObj->MethodA(); }
    bool MethodB(){ wrappedObj->MethodB(); }
    // etc...
internal:
    IHamWrapper(NativeCode::INativeClass* data)
    {
        wrappedObj = data;
    }
    NativeCode::INativeClass* wrappedObj;
};

public ref class StaticHamCalls
{
public:
    static IHamWrapper% GetSharedData(int param1, int param2)
    {
        return ham(NativeCode::GetSharedData(param1, param2));
    }
private:
    static IHamWrapper ham;
}

这就是我试图在C#中调用它的方式

// C# code
public void testFunction()
{
    Int32 param1 = 5;
    Int32 param2 = 10;
    StaticHamCalls.GetSharedData(param1, param2);
}
Yoh Deadfall

您应该使用^(处理对象),因为C#不支持%(跟踪参考)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章