我有问题。 我可以将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? 谁能帮我做正确的事? 谢谢。