А кто компилировал из Simulink dll и подключал к МТ4? - страница 2

 
В таком случае осталось добавить функцию, в импорт созданной MATLAB-ом DLL, и вызывать её из MT4.
 
Stellar >>:
В таком случае осталось добавить функцию, в импорт созданной MATLAB-ом DLL, и вызывать её из MT4.

Вот модель Out1 =4*In1 в Simulink сделанная:

А в аттаче proba_pera_win32.dll и исходный С-код из которого была сделана эта dll. Так же там заголовочный файл proba_pera.h. Вот эту dll и нужно прикрутить к МТ4. Интересно только само подключение.

Файлы:
proba_pera.rar  51 kb
 

Так как в metatrader нет структур, пришлось создать дополнительную библиотеку.Она должна находиться в одной папке с dll созданной MATLAB Real Time Workshop.

Все работает... Интересно проверить эту технологию на сложных моделях,например с тренировкой сети или вейвлетами.

Файлы:
binding.zip  12 kb
 
Stellar >>:

Так как в metatrader нет структур, пришлось создать дополнительную библиотеку.Она должна находиться в одной папке с dll созданной MATLAB Real Time Workshop.

Все работает... Интересно проверить эту технологию на сложных моделях,например с тренировкой сети или вейвлетами.

Спасибо большое! Теперь будет пример. Правда эксперт при запуске выдаёт: 2008.10.20 19:00:00 proba_pera GBPUSD,M1: cannot load library 'mlbuffer.dll' (error 126)

Короче, не хочет эту библиотеку подгрузить, хотя я обе dll положил в: C:\Program Files\FIBO Group\experts\libraries и разрешил экспорт dll.

 
renegate >>:

Спасибо большое! Теперь будет пример. Правда эксперт при запуске выдаёт: 2008.10.20 19:00:00 proba_pera GBPUSD,M1: cannot load library 'mlbuffer.dll' (error 126)

Короче, не хочет эту библиотеку подгрузить, хотя я обе dll положил в: C:\Program Files\FIBO Group\experts\libraries и разрешил экспорт dll.

Скорее всего проблема в следующем.

Библиотека mlbuffer.dll кроме системных функций работает с функциями, экспортируемыми из библиотеки MSVCR90.dll. Она есть не у всех.

Проверьте, есть ли указанная библиотека в Вашей системной папке %SystemRoot%\system32\.

 
Ilnur >>:

Скорее всего проблема в следующем.

Библиотека mlbuffer.dll кроме системных функций работает с функциями, экспортируемыми из библиотеки MSVCR90.dll. Она есть не у всех.

Проверьте, есть ли указанная библиотека в Вашей системной папке %SystemRoot%\system32\.

Совершенно верно, причина наверняка именно в этом. Dll скомпилирована в VS2008.
Можно пересобрать проект в более старых версиях VS, или просто добавить MSVCR90.dll в системную папку. 


 
Stellar >>:

Совершенно верно, причина наверняка именно в этом. Dll скомпилирована в VS2008.
Можно пересобрать проект в более старых версиях VS, или просто добавить MSVCR90.dll в системную папку. 



Я добавил MSVCR90.dll в системную папку, так же прогнал dll через dependency walker и он продолжает выдавать ошибку в связях dll, но это ерунда, потихоньку разберусь и соберу на Visual C++ 6.0.

 
Stellar >>:

Совершенно верно, причина наверняка именно в этом. Dll скомпилирована в VS2008.
Можно пересобрать проект в более старых версиях VS, или просто добавить MSVCR90.dll в системную папку. 

Пересобирать проект в более старых версиях нет необходимости.

Достаточно перед сборкой проекта в VS2008 указать, чтобы MFC библиотеки линковались статически.

Скомпиленный код увеличится в размере, но будет работать независимо от MFC библиотек.

renegate >>:

Я добавил MSVCR90.dll в системную папку, так же прогнал dll через dependency walker и он продолжает выдавать ошибку в связях dll, но это ерунда, потихоньку разберусь и соберу на Visual C++ 6.0.

Этого недостаточно, т.к. сама библиотека MSVCR90.dll работает с функциями, экспортируемыми из других библиотек, которых

скорее всего у Вас тоже нет.

 
Ilnur >>:

Пересобирать проект в более старых версиях нет необходимости.

Достаточно перед сборкой проекта в VS2008 указать, чтобы MFC библиотеки линковались статически.

Скомпиленный код увеличится в размере, но будет работать независимо от MFC библиотек.

Эта библиотека не использует MFC, только C Run-Time Libraries, хотя сути это не меняет.

Загрузил новый архив, с статически линковаными dll.

Файлы:
binding_1.zip  38 kb
 
Stellar >>:

Эта библиотека не использует MFC, только C Run-Time Libraries, хотя сути это не меняет.

Загрузил новый архив, с статически линковаными dll.

Спасибо! Теперь ошибки не высвечиваются! Библиотека загружается. А ещё вопрос по поводу кода советника на mql: он не выводит ни на экран, ни в журнале экспертов данные, хотя в советнике это задано. Ещё я хотел прогнать советник с dll-кой в тестере стратегий и в журнале тестирования получил запись, что dll не разрешены, а как их разрешить в тестере (в настройках советника там нет этой галочки)?

Причина обращения: