C# ';方法名称';该语言不支持 我正在使用我的本地C++代码的包装类来实现一些C++/CLI和C语言互操作。

C# ';方法名称';该语言不支持 我正在使用我的本地C++代码的包装类来实现一些C++/CLI和C语言互操作。,c#,visual-c++,c++-cli,interop,native,C#,Visual C++,C++ Cli,Interop,Native,我似乎无法克服此错误。“GetSharedData”不受该语言的支持。。我在网上搜寻解决方案,并尝试了所有的建议,但没有成功 我的代码如下所示: // c++/cli wrapper code // // this wraps an abstract native c++ class public ref IHamWrapper { public: // default constructor IHamWrapper(){} // copy constructor

我似乎无法克服此错误。
“GetSharedData”不受该语言的支持。
。我在网上搜寻解决方案,并尝试了所有的建议,但没有成功

我的代码如下所示:

// 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不支持
%
(跟踪参考)。

谢谢您的回答。当我从跟踪引用更改为句柄时,工作非常完美。
// C# code
public void testFunction()
{
    Int32 param1 = 5;
    Int32 param2 = 10;
    StaticHamCalls.GetSharedData(param1, param2);
}