我有一个本机 C/C++ 结构
typedef struct
{
...
} AStruct;
在 C++/CLI 代码中,我定义了一个委托和一个 cli 数组,如下所示
public delegate void UpdateDataDelegate(AStruct% aSt,AStruct% bSt);
cli::Array<AStruct>^ args=gcnew cli::Array<AStruct>(2); // complile failed!!!!。
this->Invoke(updateData,args);
AStruct
有很多字段并且被很多模块使用,所以如果我不喜欢为它编写一个管理包装AStruct
,如何使上面的代码有效?
非常感谢
托管数组的元素类型必须是托管类型。一种解决方法是存储指针:
array<AStruct*>^ args=gcnew array<AStruct*>(2);
args[0] = new AStruct;
// etc...
UpdateDataDelegate^ dlg = gcnew UpdateDataDelegate(Mumble);
dlg->Invoke(*args[0], *args[1]);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)