![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 12.10.2008
Сообщений: 140
|
![]()
Появилась необходимость использовать функции Matlab в Delphi
Matlab может создавать код на C и dll файл через свой компилятор mcc из m-файла, нужно понять, как этот dll файл использовать в Delphi Дошел до следующего: создал M-файл add.m В нем: function rez=add(x,y); rez=x+y; Далее: mcc -l add.m // создаем dll и файлы на Си Подключаю фйнкцию из dll (они меняют название зачем то, посмотрел Borland dll Explorer) function _mlxAdd(x, y : double) : double; cdecl;external 'add.dll' В строчке сверху не понятно cdecl нужен ли, или что-то другое может нужно(на одном из сайтов нашел)? ShowMessage(FloatToStr(_mlxadd(10,2 0))); Использую в Delphi в кнопке В этом варианте не ругается, что не могу найти точку входа функции в dll, по другому ругается. Но при вызове функции ошибка выводится Project Project1.exe raised exeption class EAccessViolation with message 'Access violation at address 00000000. Read of address 00000000'. Process stopped. Use Step or Run to continue. Последний раз редактировалось Mikhail Bakurov; 03.12.2009 в 09:51. |
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
исследуйте цю dll на экспортируемые функции, например с помощью <see_dll.exe> из комплекта visual studio
upd ------- Цитата:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation Последний раз редактировалось raxp; 03.12.2009 в 10:21. |
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 12.10.2008
Сообщений: 140
|
![]()
Как уже написал выше исследовал Borland dll Explorer
вот что он выдает: _addGetMcrID _addInitialize _addInitializeWithHandlers _addPrintStackTrace _addTerminate _mlfAdd _mlxAdd |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
имхо в дельфи...
Код:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation Последний раз редактировалось raxp; 03.12.2009 в 10:26. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 12.10.2008
Сообщений: 140
|
![]()
В архиве лежит все, что получается из Matlab'a и проект Delphi
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 12.10.2008
Сообщений: 140
|
![]()
Никто не может помочь?
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
похоже matlab при установке какие-то dll кидает в систему и та dll тож ее использует... у меня требует при инициализации либы - mclmcrrt711.dll (матлаба у меня нет)... если приложите, то бум смотреть дальше
зы: есть чуйство, что это не все, что потребует
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 12.10.2008
Сообщений: 140
|
![]()
Выкладываю дополнительную библиотеку
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
подсчет количества символов через dll | a_n_n_a | Помощь студентам | 14 | 19.05.2009 10:16 |
Хук HttpSendRequestA через Wininet.dll | VitaliyK | Общие вопросы .NET | 0 | 08.12.2008 14:28 |
DLL через Lib | kiloruble | Общие вопросы C/C++ | 1 | 02.12.2008 22:58 |
работа с БД (компонент ADO,dbGrid) через dll | oWish | Помощь студентам | 4 | 29.02.2008 12:23 |
Передача данных(массива) через DLL. | acorables | Общие вопросы Delphi | 4 | 05.02.2007 13:16 |