отладка DLL. Появилась проблема(

 
Мужики, есть проблема  с отладкой библиотек под Метатрейдер4, для вызова их из mql -кода советников, скриптов и проч....Тех самых, что когда -то отлаживались полноценно. Думаю, что это связано с обновлением терминала.  Какие есть мнения и решения проблемы?
 
Если вы о том что нельзя отлаживать из за встроенное системы защиты "Themida"... то есть идея, может к вечеру сделаю и скину...
 
kernelmd >>:
Если вы о том что нельзя отлаживать из за встроенное системы защиты "Themida"... то есть идея, может к вечеру сделаю и скину...

Я уж думал, что одинок во Вселенной.

Разработчики на metaquotes.ru молчат и трейдеры тоже, а здесь уже месяц, оказывается обсуждается проблема  защитой  с помощью "Themida". https://forum.mql4.com/ru/17659.

То что метаквотовцы молчат - настораживает. Не понятно куда все катится и в каких условиях придется работать дальше(.   Сломать "Themida" вариант интересный, жаль, что немного не цивилизованный. Лучше бы разработчики сказали, что за подарочки готовят для пользователей. И лучше бы сюрпризам быть приятными.

 
Siarhei писал(а) >>

То что метаквотовцы молчат - настораживает. Не понятно куда все катится и в каких условиях придется работать дальше(. Сломать "Themida" вариант интересный, жаль, что немного не цивилизованный...

Молчат конечно .. вся эта возня с защитой кода думаю в том что "засветили" часть их API-шного интерфейса, так что по кр. мере с историей и тиками можно работать из-под оболочки. Поясните - в чем сакральный смысл работать с собственными советниками как в распределенной среде - минуя GUI или хотя бы какого-то собственного надстройки или шелла на MQL ?

 
Valio >>:

Молчат конечно .. вся эта возня с защитой кода думаю в том что "засветили" часть их API-шного интерфейса, так что по кр. мере с историей и тиками можно работать из-под оболочки. Поясните - в чем сакральный смысл работать с собственными советниками как в распределенной среде - минуя GUI или хотя бы какого-то собственного надстройки или шелла на MQL ?

Т.е из терминала экстрактировали АПИ? И работают с тиками и историей без основной части кода Метатрейдера?.

Ну помнится. очень многие были недовольны тем, что АПИ, открытый в MT3 стал закрытым в МТ4 .   АПИ меняется медленнее чем сама аппликуха, поэтому решение построенное на АПИ- более долговечное.Если есть АПИ любые задачи программисту решать легче, во всяком случае решение не такое дубовое, получится.И отлаживается все замечательно. Не нужен этот дурацкий, потому что  не отлаживаемый, МQL и теперь уже, к сожалению,  не отлаживаемый терминал.Такое вот мнение... 

Хорошо.. защитили они терминал Темидой . И что?  АПИ выковыряли ведь.. А простые ламеры пострадали- ДЛЛ не отлаживаются..((

 
Siarhei писал(а) >>

И работают с тиками и историей без основной части кода Метатрейдера?... А простые ламеры пострадали- ДЛЛ не отлаживаются..

Нет, все работает из-под подгруженного MT, смысл лишней работы по выковыриванию ядра если им и так можно пользоваться. Я честно не вижу задач для которых необходимо столь глубокое "копание". Лично я с этим возился когда нужн был экспорт данных в NS4 и Excel, чтобы не возиться с txt файлами и в случае если долго не приходят тики на mql-ный шелл. Потом достал плагин и забил . Если говорить об отладке dll-ки из-под MT на MSVC 6,7 то все прекрасно работает и бейкпоинты и трассировка, если конечно сама dll не объявлена коряво. Если есть вопрос по существу а не пространные рассуждения - готов помочь.

 
Valio >>:

Если говорить об отладке dll-ки из-под MT на MSVC 6,7 то все прекрасно работает и бейкпоинты и трассировка, если конечно сама dll не объявлена коряво. 

Вопрос по существу: как правильно объявить dll чтобы бейкпоинты и трассировка случились?

 
shtoba писал(а) >>

Вопрос по существу: как правильно объявить dll чтобы бейкпоинты и трассировка случились?

Ничего особенного мудрить не надо, все работатет по умолчанию - делается обычный Standalone dll проект в VC6 (без MFC ес-но), на 2 конфига - один с дебугинфо ( другой без). Как откомпеллится, положить в директорию МТ. Ставится брейкпоинт на вход и при вызове оболочка VC останавливается в указанном месте. Во внутрь МТ с помощью VC ходить не надо..он не для этих целей, а все остальное прозрачно и красиво.

Если дебугинфо не прицепилась в линкере или компайлере, ес-сно никакой красивой отладки. Но и в этом случае если имеются навыки риверсинжениригинга, можно как воспользоваться к примеру патченным Олли и даже изучить как подаются параметры на вход вызываемой функции, но я думаю Вам это не нужно. Просто пользуйтесь отладчиком MSVC для своего проекта. К примеру попытайтесь добиться режима отладки в выщеупомянутом DLLSample

 
Valio >>:

Ничего особенного мудрить не надо, все работатет по умолчанию - делается обычный Standalone dll проект в VC6 (без MFC ес-но), на 2 конфига - один с дебугинфо ( другой без). Как откомпеллится, положить в директорию МТ. Ставится брейкпоинт на вход и при вызове оболочка VC останавливается в указанном месте. Во внутрь МТ с помощью VC ходить не надо..он не для этих целей, а все остальное прозрачно и красиво.

Если дебугинфо не прицепилась в линкере или компайлере, ес-сно никакой красивой отладки. Но и в этом случае если имеются навыки риверсинжениригинга, можно как воспользоваться к примеру патченным Олли и даже изучить как подаются параметры на вход вызываемой функции, но я думаю Вам это не нужно. Просто пользуйтесь отладчиком MSVC для своего проекта. К примеру попытайтесь добиться режима отладки в выщеупомянутом DLLSample

К сожалению под рукой нет VC6, проверить не могу.

VC8, VC9 увы, фемида рубит отладчик

Да даже если VC6 и позволяет проводить отладку с фемидой (хотя сомневаюсь) - не слишком ли жестоко навязывать разработчику устаревшие инструменты?

 
shtoba >>:

К сожалению под рукой нет VC6, проверить не могу.

VC8, VC9 увы, фемида рубит отладчик

Да даже если VC6 и позволяет проводить отладку с фемидой (хотя сомневаюсь) - не слишком ли жестоко навязывать разработчику устаревшие инструменты?

мт4 написан на VC6

 
YuraZ >>:

мт4 написан на VC6

да хоть на бейсике, я к тому - что платформа умышленно теряет юзабилити, как следствие - гибкость, как следствие - будет терять часть пользователей. Продукт становится все более консервативным и штукой-в-себе, а предоставленные в нем средства для автоматизации оставляют желать лучшего. Возможность из скрипта работать с произвольными dll - отличная задумка, но, судя по всему от нее хотят избавиться. Без отладчика разработка dll именно под мт усложняется значительно, нужно делать намного больше пассов. А с помощью фемиды метаквоты просто подготавливают сообщество - чтоб потом изъятие этой возможности шоком небыло. Вот увидите, мт5 будет только с веб-интерфейсом и АПИ на жава-скрипт. Это все происки конкурентов.. Это заговор..!! Даеш открытое АПИ к терминалу!!! Даеш открытые протоколы к серверу!!! Даеш реальную историю котировок, алгоритмы котирования и фильтрации!!! Даеш.. блин че этоя..


а что, реально мт4+фемида допускает отладку под vc6?

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