} // GetStringArrayFromPtrLA(pointer, nLength) /// <summary> /// Get string from ptr /// </summary> internal static string GetStringFromPtr(IntPtr pointer, int nLength) { string sResult = Marshal.PtrToStringAnsi(pointer, nLength); StructAnalysis.FreeVector(pointer); return(sResult); } // GetStringFromPtr(pointer, nLength)
} // GetDoubleMatrixFromPtrLA(pointer, nRows, nCols) /// <summary> /// Get int array from ptr /// </summary> internal static int[] GetIntArrayFromPtr(IntPtr pointer, int nLength) { int[] oResult = new int[nLength]; Marshal.Copy(pointer, oResult, 0, nLength); StructAnalysis.FreeVector(pointer); return(oResult); } // GetIntArrayFromPtr(pointer, nLength)
} // GetIntArrayFromPtr(pointer, nLength) /// <summary> /// Get int matrix from ptr /// </summary> internal static int[][] GetIntMatrixFromPtr(IntPtr pointer, int nRows, int nCols) { IntPtr[] rawRows = new IntPtr[nRows]; int[][] oResult = new int[nRows][]; Marshal.Copy(pointer, rawRows, 0, nRows); for (int i = 0; i < nRows; i++) { oResult[i] = new int[nCols]; Marshal.Copy(rawRows[i], oResult[i], 0, nCols); } // for (int) StructAnalysis.FreeMatrix(pointer, nRows); return(oResult); } // GetIntMatrixFromPtr(pointer, nRows, nCols)
} // GetIntMatrixFromPtr(pointer, nRows, nCols) /// <summary> /// Get string array from ptr /// </summary> internal static string[] GetStringArrayFromPtr(IntPtr pointer, int nLength) { IntPtr[] rawRows = new IntPtr[nLength]; string[] oResult = new string[nLength]; Marshal.Copy(pointer, rawRows, 0, nLength); for (int i = 0; i < nLength; i++) { oResult[i] = Marshal.PtrToStringAnsi(rawRows[i]); } // for (int) StructAnalysis.FreeMatrix(pointer, nLength); return(oResult); } // GetStringArrayFromPtr(pointer, nLength)