繁体   English   中英

是否可以从C#调用参数类型为Dataset的C ++函数

[英]Is it possible to call from C# a C++ function that has parameter of type Dataset

我们有许多方法的旧版C ++程序(未管理标准C ++)。 大多数使用char和int参数。 但是,一个具有以下方法签名:

Convert(CDataSet &DataSet, CValue &Var, char *pOutput, int &nParser)

我们需要从C#调用该方法。 我们有一个现有的Managed C ++类,可以调用需要char和int的非托管方法而不会出现问题。 但是,当需要将数据集传递给C#时,我们不知如何从C#中调用C ++方法。 有人告诉我们,这样做是不可能的。 真的吗?

如果我们不能传递数据集,是否可以传递对象,然后将托管类将其强制转换为数据集以传递给非托管类?

在您的托管C ++包装器lib中,例如接受System.Data.DataSet并将其数据转换为CDataSet并调用非托管代码。 返回时,将更新转换回(如果需要)。

UPD:通过“转换”,我的意思是在包装方法中创建CDataSet类的新实例,从托管对象填充其数据,然后调用非托管函数。 返回时,如有必要,将数据传输回原始受管对象,然后返回。

如果您需要管理调用之间或跨越过程边界之间的对象更新(即,即使未传递对象,其他函数调用也会导致对此对象的更新),而不是围绕非托管对象创建包装器并提供可让您操作的托管接口所需级别的对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM