2011-06-13 100 views
4

我想編組一個2D C#鋸齒陣列(double[][] jaggedArray)到一個C++ dll,其中我指定接收變量爲double**編組C#鋸齒陣列到C++

但是,我得到的消息:

沒有爲 嵌套數組沒有封送處理支持。

扁平化鋸齒狀數組的缺點是有沒有辦法在C++ dll中使用C#中的鋸齒狀數組?

回答

2

使用低級Marshal類方法,可以將任何類型編組爲非託管內存。例如,對於jaggedArray中的每個double []數組,使用Marshal.AllocHGlobal分配非託管內存塊,並使用Marshal.Copy方法(Double [],Int32,IntPtr,Int32)方法將數組成員複製到它。 AllocHGlobal返回IntPtr類型,在這種情況下,它可以作爲poiner傳遞給C++方法。