如何在c ++中调用将类对象返回给c#的函数
Posted
技术标签:
【中文标题】如何在c ++中调用将类对象返回给c#的函数【英文标题】:How to call function in c++ which return a class object to c# 【发布时间】:2014-01-24 13:23:14 【问题描述】:C#函数调用c++中暴露的函数又调用abc类的some_fun(int),我应该如何在C#some_funenter code here
中获取abc的对象@
C++:
class abc
public: abc some_fun(int x);
这个函数调用abc类的some_fun(int), 我应该如何在 C# some_fun (marshalled object) 中获取 abc 的对象
extern "C" SAMPLEDLL_API void __cdecl some_fun(int x);
来自 c# 包装器:我如何编组它
public static extern IntPtr some_fun(int abc);
【问题讨论】:
如何在 c++ 端将其序列化为 JSON,然后在 c# 端将其反序列化为您想要的对象? 【参考方案1】:您必须从您的 C# 程序中“Pinvoke”您的 c++ 函数。 当你这样做时,你必须用 C# 术语声明你的函数签名。 在该声明中,您必须提供一个 C# 结构来表示您尝试传递的 C++ 结构。
例如,如果您有 C++ 结构:
struct FOO
public long Dummy;
;
在您的 C# 程序中,您必须定义一个 C# 结构
public struct CSFOO
public int Dummy;
您将把它传递给您的 PINVOKed 函数。
此链接可以帮助您:http://msdn.microsoft.com/en-us/library/aa288468(v=vs.71).aspx
【讨论】:
以上是关于如何在c ++中调用将类对象返回给c#的函数的主要内容,如果未能解决你的问题,请参考以下文章
Python / IronPython-仅引用类对象时如何返回类的特定属性的值?