我必须通过互操作从.Net代码调用C ++代码。
我只是想知道是否还有其他类中的另一个函数互操作?例如,在C ++中,我有以下实用程序类:
class ConvertUtility
{
public:
static void Convert(PointList &ptList, const list<pts> &pts);
};
我希望通过互操作直接从.Net调用它,任何想法如何做到这一点?
注意:这里是a related question询问如何使用命名空间来区分不同的方法。但是这一次,我想要与命名空间无关,只有一个具有静态功能的类。
编辑:鉴于C包装器中已经有太多函数(例如,可从.Net调用的静态extern“C”函数,没有类或命名空间),我不想引入额外的一层包裹,如果我可以帮助它。
答案 0 :(得分:2)
在您链接的相关问题中,Ben Voigt在评论编写C ++ / CLI包装器的建议中说:
这是正确的答案。 P / Invoke只能用于调用 具有“C”接口的函数,这意味着extern“C”以防止名称 修改,以及对参数和返回类型的限制。
由于该方法是静态的,我看到两个选项: