gpt4 book ai didi

c# - 在 C++/CLI 中实现 C# 接口(interface)函数返回数组

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

我有一个引用 C# dll 的 C++/CLI 项目,我需要实现一个接口(interface)类。

C# 中的接口(interface)类如下所示:

public interface IMeshData{
//(...)
INode NodeById(int nodeId);
double[] NodeXYZById(int nodeId);
}

在C++项目中我可以实现这个接口(interface):

public ref class IMeshData_class : public IMeshData{

public:
//this one is accepted:
virtual INode^ NodeById(int nid){
return this->NodeById(nid);
}
//this one gives me an error:
virtual double* NodeXYZById(int nid){
return this->NodeXYZById(nid);
}
}

当我第一次在没有任何成员函数的情况下定义我的类时,出现错误:

Error: class fails to implement interface member function "IMeshData::NodeById" (declared in (...).dll)

所以在定义函数 NodeById 之后,这个错误就消失了,我得到:

Error: class fails to implement interface member function "IMeshData::NodeXYZById" (declared in (...).dll)

NodeXYZById 返回一个 double[],我认为这会转换为 C++ 中的 double*,但似乎并非如此。

我应该如何在返回数组的 C++ 中正确实现 C# 成员函数?

最佳答案

如上所述,在 C++/CLI 中,您必须使用类型 array<T>^代替可能的 T[]在 C# 中。

关于c# - 在 C++/CLI 中实现 C# 接口(interface)函数返回数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51395868/

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