Как передать 2D массив из Delphi в Matlab DLL - PullRequest
0 голосов
/ 18 октября 2019

У меня проблема. Я могу передать двумерный массив из 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? Может кто-нибудь помочь мне, как сделать это правильно? Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...