【发布时间】:2011-07-13 00:23:07
【问题描述】:
我想在托管代码中执行 Marshal.AllocHGlobal,用数据填充它,然后将该内存块传递给非托管 (C++) 代码,然后由该代码负责释放它。
在后台,Marshal.AllocHGlobal 调用LocalAlloc(我猜是LocalLock)。但是为了让非托管代码调用 LocalFree,它需要 LocalAlloc 返回的 HLOCAL,而 Marshal.AllocHGlobal 不提供。
我不一定限于使用AllocHGlobal;高级目标是让托管代码分配非托管代码然后读取和释放的内存。
【问题讨论】:
标签: c# interop unmanaged managed