Обсуждение статьи "Как за 10 минут написать DLL библиотеку для MQL5 и обмениваться данными?" - страница 9

 
Renat:

Вам бы технический уровень подтянуть.

Для 64 битных программ нужны  64 битные библиотеки и никак в разумных рамках не подключить 32 битные. Чтобы установить 32 битную версию, инсталлер надо запустить с ключом /32

 

Статью я перепишу и дополню крутыми штуками, что давно уже внедрены в Метаедитор и платформы МТ4 и МТ5. Многие разработчики не в курсе новых возможностей.

Спасибо Ренат за ответ. Сейчас рынки довольно сложные и торговля забирает тебя как бы с головой и на совершенствование в технической области уж и времени почти не остается. Я действительно не понимаю отличий программ 32 и 64 бита. Вижу только что для пользователей создаются какие-то лишние проблеммы из-за этого. Все куда-то гонят и Майкрософт в том числе, хотят быстрее круче, а для пользователей сплошные проблеммы. Я не вижу вообще особого отличия по скорости на своем компьютере 32-х от 64-х битных. Правда у меня процессор стоит i7-4 - последний интеловский, может из-за этого. И смотрю что Майрософт стал ужимать C++. В последнем компиляторе даже установку возможности работы с формами в С++ убрали. И на вопрос почему? Отвечают что а почему бы Вам не попробовать на новом более совершенном С#. Так что если Вы смотрите в перспективу, Вам это тоже нужно учитывать.
 
ANG3110:


И смотрю что Майрософт стал ужимать C++. В последнем компиляторе даже установку возможности работы с формами в С++ убрали. И на вопрос почему? Отвечают что а почему бы Вам не попробовать на новом более совершенном С#. Так что если Вы смотрите в перспективу, Вам это тоже нужно учитывать.

Ну Майкрософт известный убийца технологий, а в последнее время и себе могилу за могилой копает.

Зачем ему мешать - пусть сам в свою яму падает. Это так образно, дабы не тратить время на технические детали. Кто желает деталей - их тысячи есть в интернете. После "более совершенного C#" у меня других слов нет.

 
:) 
 
Коллеги, как в VS подключить библиотеки МТ? что бы у меня студия не подчёркивала string, datetime...
 
Renat Fatkhullin:

Вам бы технический уровень подтянуть.

Для 64 битных программ нужны  64 битные библиотеки и никак в разумных рамках не подключить 32 битные. Чтобы установить 32 битную версию, инсталлер надо запустить с ключом /32

Статью я перепишу и дополню крутыми штуками, что давно уже внедрены в Метаедитор и платформы МТ4 и МТ5. Многие разработчики не в курсе новых возможностей.

А есть пример для создания 64 битных dll для 64 битной версии терминала? Да и про "крутые штуки" интересно узнать)
 

Все оказалось просто!

Установил бесплатную Visual Studio Community 2015 (именно Community, т.к. в ней есть поддержка х64, в отличие от Express) У платных версий х64 конечно тоже есть, но я рассматривал бесплатные варианты. Web Installer у меня выдал ошибку, поэтому установил из образа ISO. При установке выберите "Выборочную" установку и отметьте С++ (по умолчанию он не устанавливается).

Далее все сделал, как в статье, т.е. создал Win32 проект. Сделал сборку, которую х64 терминал отказался принять (как и ожидалось).

Затем во вкладке "Сборка" -> "Диспетчер конфигураций" изменил платформу на х64, (можно так же изменить "Активная платформа решения" на х64)

    

Снова сделал сборку. Новая dll оказалась в папке \x64\Debug (окончательная сборка будет в x64\Release\) , которую х64 терминал без проблем обработал, выдав следующее:

19:29:01.883    dll_test (EURUSD.e,H1)    Time 16 msec, int: -752584127 double: 17247836076609.0
19:29:01.883    dll_test (EURUSD.e,H1)    Array: 0 1 2 3 4 5 6 7 8 9
19:29:01.883    dll_test (EURUSD.e,H1)    Replace: A quick brown cat jumps over the lazy dog
19:29:01.886    dll_test (EURUSD.e,H1)    Access violation at 0x000007FEFB0F176F write to 0x0000000000000000 in '...\MQL5\Libraries\ConsoleApplication1.dll'
и дальнейшее описание перехваченной ошибки
Т.е. все работает!!!

Downloads | Visual Studio
Downloads | Visual Studio
  • www.visualstudio.com
Visual Studio Community 2015 with Update 1 - Free Visual Studio Community 2015 with Update 1 is a free, fully featured, and extensible IDE for individual developers, open source projects, academic research, education, and small professional teams. Create applications for Windows, Android, and iOS as well as web applications and cloud services...
 

Примечание:

при переносе на др. компьютер ДЛЛ отказалась работать, т.к. использовала компоненты из самой VS. Проблема решается в Проект -> Свойства -> Использование MFC, установить в "Использовать MFC в статической библиотеке". После этого пересобрать и перекомпилировать ДЛЛ

Найдено на форуме:

Можно проводить оптимизацию советников с DLL не только на локальном компьютере, но и в локальной сети. Для этого на компьютерах сети нужно добавить ключ /dlls в реестр для агентов тестирования. Вызов редактора реестра: regedit

Renat Fatkhullin:

У существующих инсталлированных агентов можно поменять команды запуска только через реестр в ветках HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MetaTester-XXXX

Просто кликните на каждом параметре ImagePath и допишите в конец строки /dlls


 

Сейчас занимаюсь привязкой ZeroMQ к MT4 через DLL.

Очень плохо как-то. Терминал крошится сплошь и рядом при запуске индикатора или при выгрузке. Причем это не проявляется в режиме отладки, так что вообще не понятно, что происходит.

 

Добрый день.

Почему-то у меня при запуске тестового примера скрипт отрубается при первом же обращении к импортируемой функции

2016.07.30 23:30:14.088    Scripts    script mql5dll_test (EURUSD,H1) removed

Что я делаю не так?

 
EsEr:

Добрый день.

Почему-то у меня при запуске тестового примера скрипт отрубается при первом же обращении к импортируемой функции

2016.07.30 23:30:14.088    Scripts    script mql5dll_test (EURUSD,H1) removed

Что я делаю не так?

статья 6-летней давности, что-то изменилось, скорее всего

код ошибки какой?