如何将2D数组从Delphi传递到Matlab DLL

时间:2019-10-18 18:57:24

标签: arrays matlab delphi

我有问题。 我可以将2D数组从Delphi传递到CodeBlocks创建的C ++ DLL。 我在C ++ DLL中的功能是:

double __declspec(dllexport)  __cdecl mainFunction(double** arr, int64 length)

我在Delphi中调用DLL的函数是:

type
 DynMatrixDouble = array of array of double;
.
.
function arr(X:DynMatrixDouble; Y: integer):double; stdcall; external 'Array_dll.dll' name 'mainFunction';

此代码运行良好,并且变量的值在程序和dll之间传输。但是当我将Matlab输入中具有2D数组的函数转换为DLL或/ to C ++以使用CodeBlocks生成DLL时,不再喜欢上面的代码,它是:

double calc_det(int64m_T n, const emxArray_real_T *arr)

似乎我应该在Delphi中的“ emxArray_real_T”中输入2D双数组变量并传递给DLL。 我搜索并到达以下链接: How to convert float[][] type array to "emxArray_real_T *x" 但是我找不到我的问题的答案。我的问题是如何在Delphi中为2D数组定义“ emxArray_real_T”类型并将其发送到dll? 谁能帮我做正确的事? 谢谢。

0 个答案:

没有答案