gpt4 book ai didi

c# - 与不同类中的另一个函数互操作

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

我必须通过互操作从 .Net 代码调用 C++ 代码。

我只是想知道是否可以与不同类中的另一个函数互操作?例如,在 C++ 中,我有以下实用程序类:

 class  ConvertUtility
{
public:
static void Convert(PointList &ptList, const list<pts> &pts);


};

我希望通过互操作直接从 .Net 调用它,知道如何做到这一点吗?

注意:这里是a related question询问如何使用命名空间来区分不同的方法。但是这一次,我想要与 namespace 无关,只想要一个具有静态功能的类。

编辑:鉴于 C 包装器中已经有太多函数(例如,可从 .Net 调用的静态外部“C”函数,没有类或命名空间),我不想引入额外的层包装,如果我能帮忙的话。

最佳答案

在您链接到的相关问题中,Ben Voigt 在对编写 C++/CLI 包装器的建议的评论中说:

This IS the correct answer. P/Invoke should only be used to call functions with a "C" interface, which means extern "C" to prevent name mangling, and also restrictions on parameter and return types.

由于该方法是静态的,我看到两个选项:

  1. 编写一个可以用 P/Invoke 调用的简单 C 包装函数。
  2. 编写一个可以直接从 C# 调用的 C++/CLI 包装器。

关于c# - 与不同类中的另一个函数互操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6855771/

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