У меня проблема. Я могу передать двумерный массив из Delphi в C ++ DLL, созданную CodeBlocks. Моя функция в 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. Но когда я преобразую функцию, имеющую входной 2D-массив в Matlab, в DLL или / в C ++, чтобы сделать DLL с CodeBlocks, это больше не похоже на код выше, это:
double calc_det(int64m_T n, const emxArray_real_T *arr)
Кажется, я должен сделать 2D Double array Variable В "emxArray_real_T", набрать Delphi и перейти к DLL. Я искал и пришел по ссылке ниже: Как преобразовать массив типа float [] [] в "emxArray_real_T * x" Но я не смог найти ответ на свой вопрос. Мой вопрос - как определить "emxArray_real_T""введите Delphi для 2D Array и отправьте его в dll? Может кто-нибудь помочь мне, как сделать это правильно? Спасибо.