管理C++传递浮点 *OUT 作为参数

本文关键字:OUT 参数 C++ 管理 | 更新日期: 2023-09-27 18:33:19

我为非托管C++库制作.Net包装器。我需要使用此签名的函数:

BOOL Func ( float *OUT floatArray)

我在托管C++中尝试过这个:

float* mp = new float(10);
bool what = Func(mp);

但是我得到了一个访问违规异常。(尝试读取或写入受保护的内存。这通常表示另一个内存已损坏。怎么了?

这是我在托管C++中的函数:

bool MyFunc (array<Single>^% floatArray)

我正在尝试使用此函数返回 C# float[]。也许还有另一种选择来完成我的任务。

管理C++传递浮点 *OUT 作为参数

C++中分配(new'ed)的一大块非托管内存返回到 C# 在几个方面似乎是一个相当糟糕的主意(谁负责释放(删除[]'ing)内存? 如果您C++中使用 System::Array 并通过"ref"传递值(在 c# 中),我怀疑会更好。