如何在c ++中调用函数将类对象返回给c#

时间:2014-01-24 13:23:15

标签: c# c++ marshalling

C#函数调用c ++中的公开函数,后者又调用类abc的some_fun(int),如何在C#some_fun enter code here

中获取abc的对象

C ++:

class abc
{
    public: abc some_fun(int x);
}

这个函数调用class abc的some_fun(int),
我应该如何在C#some_fun(编组对象)中获得abc的对象

extern "C" SAMPLEDLL_API void __cdecl some_fun(int x);

来自c#wrapper:如何编组

public static extern IntPtr some_fun(int abc);

1 个答案:

答案 0 :(得分:0)

你必须从你的C#程序“Pinvoke”你的c ++函数 执行此操作时,您必须使用C#术语声明函数签名。 在该声明中,您将必须提供一个C#struct represnting您尝试传递的C ++结构。

例如,如果你有C ++结构:

struct FOO
{
public long Dummy;
};

在C#程序中,您必须定义一个C#struct

public struct CSFOO
{
public int Dummy;
}

您将传递给PINVOKEd函数。

此链接可以帮助您:
http://msdn.microsoft.com/en-us/library/aa288468(v=vs.71).aspx