我们有一些涉及矩阵的Interop代码。我试图调用本地DLL,在大部分情况下它非常可靠。
我依赖于 .net默认封送, 避免使用非托管指针,而是在大部分情况下使用.net数组,可能偶尔使用byref
。.net文章说,多维数组隐式封送为按列主序的一维数组,这很好。
唯一不起作用的是,尝试封送多维数组,因为F#编译器抱怨float[,]
在extern
声明中不被允许。是否有任何方法可以解决这个限制?
我知道F# PowerPack中的PinnedArray
和PinnedArray2
类型,但我正在寻找一种依赖于托管指针的解决方案 - 更重要的是,我想避免仅为了PinnedArray
类而将F# PowerPack包含为依赖项。
float[,]
这样的东西。那么你尝试过使用float[][]
吗? - Daniel