
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Спасибо! Я по частям. создаю проект с помощью визуал студии. Проэкт
Дальше, я из этого проекта копирую DLLproect.dll и помещаю ее в папку libraries метатрайдера.
Код робота
Все компилируется. Но результата нету, точнее
2013.12.16 16:23:57 NowiyDLL USDCHF,M5: cannot call function 'fnCalculateSpeed' from dll 'DLLproect.dll' (error 127)
Чем дополнить проект, или что куда вставить, или что? как интересно!!
Да. Читаю
- Да дефа нет я так и не нашол как его создать
Правой кнопкой на проекте --> Add --> New Item --> Visual C++ --> Module definition file (.def).
Если добавлять ручками существующий, не прокатит, надо именно создавать студией.
-Как это будет, по-русски?
Добавил блокнотом в проект и перестроил его. Что означает этот минус? Уверен, что ничего не вышло.
Пишут, что файл def ну должен быть. Почему он не появляется в проекте сам?
Наверное Вы меня игнорируете
1. Проект компилируется? Без ошибок? Если да, то установите выходной каталог в известное вам место, ничего искать не придется (описано в статье выше).
2. Вы должны получить файл.dll для импорта его функций в MT. Для импорта функций из него в мета эдиторе пишем:
3. dll - не exe, exe запускается руками в ней есть стартовая функция, dll используется другой программой (exe).
4. если решили использовать __stdcall , то есть особенности, даже если напишите extern "C" имя будет изменяться (в таблице экспорта), если не ошибаюсь - будет добавлено @<размер параметров> в конец имени. Либо смотреть имя при помощи различных утилит (например dumpbin), либо поиском через блокнот, либо сделать для проекта .def файл (его пример есть в MT\experts\samples\DLLSample). Мало просто кинуть def файл в папку с проектом (к .h и .cpp файлам) еще нужно отразить это в настройках проекта: свойства проекта/компоновщик/ввод/файл определения модуля.
5. Кое-что писал здесь: https://www.mql5.com/ru/forum/140601/page6
Извините!!! Я доопределяюсь с терминологией всего.
Так, снова по частям. Файл файл.dll из проекта я нашол, скопировал и добавил в папку либрариес, а в проекте он остался. Правильно?
Попробуйте сделать все в точности как я написал:
1. В одном из .cpp файлов пишите
2. Создаете файл блокнотом и вписываете
Меняете расширение на .def, кидаете его к .cpp и .h проекта. Добавляете файл в обзор проекта (слева, где отображаются файлы в студии). Вписывайте имя вашего def файла в: свойства проекта/компоновщик/ввод/файл определения модуля.
3. Компилируйте, .dll должна оказаться в MT\experts\libraries.
4. Создаете скрипт с кодом
5. Никакого творчества !!!
Вот, кстати, ещё особенность новых билдов MT4 : DLL-ки можно компилировать (не отлаживать) прямо в метаэдиторе.
// При условии наличия на компе вижуал-студии. Её метаэдитор обнаруживает при загрузке.