gpt4 book ai didi

c# - 该语言不支持“MethodName”

转载 作者:行者123 更新时间:2023-11-30 16:55:49 25 4
gpt4 key购买 nike

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

我似乎无法解决错误 '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# code
public void testFunction()
{
Int32 param1 = 5;
Int32 param2 = 10;
StaticHamCalls.GetSharedData(param1, param2);
}

最佳答案

您应该使用 ^(对象句柄),因为 C# 不支持 %(跟踪引用)。

关于c# - 该语言不支持“MethodName”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28973675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com