0

如何将对象从 C# 库传递到 C++。

我可以调用一个返回voidint 没有任何问题的函数。

现在考虑 C# 中的以下函数,

List<CSharpClass> CSharpFunction(string Input)

我的 C# 类包含的位置,

public class CSharpClass
{ 
    string mystring = string.Empty;
    byte[] bytearray = null;        

    public byte[] bytearray 
    {
        get { return bytearray ; }
        set { bytearray = value; }
    }

    public string mystring 
    {
        get { return mystring ; }
        set { mystring = value; }
    }      
}

现在,我想在我的 C++ 中使用这个列表。所以我创造了,

  typedef std::vector<class CSharpClass>  MyDetailList;

方法对吗??如果不是我需要在 C++ 中使用什么?

4

1 回答 1

-1

如果你想从 C++ 代码中调用 C# dll,你可以按照这篇文章。简而言之,您将不得不:
- 编写一个包含 CSharpClass
的托管 DLL - 注册托管 DLL 以与 COM 或本机 C++ 一起使用
- 从本机 C++ 代码调用托管 DLL

这个 SO question也是相关的,如果您想避免使用 COM,它包含替代解决方案


最初的错误答案:

您可以查看这篇文章以获得相当不错的教程。简而言之,你将不得不:
- 从你的 c++ 代码编译一个 dll
- 在 C# 和 C++ 之间编组(“翻译”)你的类
- 通过使用 DllImport 声明从 C# 加载 dll
- 调用导入的方法

于 2014-02-12T05:19:40.050 回答