recorrer multidimensional jagged examples bidimensionales arreglos array .net multidimensional-array f# marshalling

.net - jagged - Cómo reunir matrices multidimensionales



multidimensional array java (1)

Tenemos un código de interoperabilidad que implica matrices. Estaba intentando llamar a la DLL nativa y, en su mayor parte, funciona de manera muy confiable.

Confío en la clasificación predeterminada por .net , evitando punteros no administrados y en su lugar usando arreglos .net en su mayor parte, y tal vez un byref aquí y allá. El artículo de .net dice que las matrices multidimensionales se organizan implícitamente como matrices unidimensionales de columnas principales, lo que estaría bien.

Lo único que parece no funcionar es intentar organizar una matriz multidimensional, ya que el compilador de F # se queja de que float[,] no está permitido en una declaración extern . ¿Hay alguna forma de evitar esta limitación?

PinnedArray2 tipos PinnedArray y PinnedArray2 del F # PowerPack, pero estaba buscando una solución que dependa de punteros administrados y, lo que es más importante, me gustaría evitar tener que incluir F # PowerPack como una dependencia solo para las clases PinnedArray .


Con esta descripción sobre los tipos Blittable y Non-Blittable en el siguiente enlace, puede probar System.Doble en lugar de float, ya que no requieren conversión cuando se pasan entre código administrado y no administrado, lo que significa que ya no se requiere un manejo especial por interoperabilidad. Marshaler con un plus en rendimiento: https://msdn.microsoft.com/en-us/library/75dwhxf7%28v=vs.110%29.aspx

Hice una búsqueda y encontré este tema relacionado que puede ayudarte:

Threat like a single array: http://.com/a/18607817/4597705