
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Если проблема в зависимостях -- возможно ответ отсюда поможет зело:
http://stackoverflow.com/questions/14361992/dll-load-library-error-code-126
Если проблема в зависимостях -- возможно ответ отсюда поможет зело:
http://stackoverflow.com/questions/14361992/dll-load-library-error-code-126
Спасибо, попробую
Проблема решена. Разобрался. Спасибо TheXpert за консультирование.
Во-первых, не все можно слинковать статически. Если используемый ресурс поставляется только с DLL (а не с *.lib-файлами) невозможно слинковать свою DLL-ку с используемыми ресурсами полностью статически. Что важно, при этом компилятор не ругается. То есть, при включении режима Runtime Library: Multi-threaded (/MT) компилятор загружает в итоговую DLL-ку только лишь по возможности и это совершенно не гарантирует, что в итоге мы получим независимую DLL.
Во-вторых, очень важно использовать грамотный инструментарий для отслеживания всех вызовов. Dependency Walker лажает, иногда сообщает о проблемах когда их нету или наоборот не замечает трудности когда они на самом деле имеют место. Идеальный вариант отладки: Process Monitor. Тулзовина позволяет просматривать абсолютно все действия того или инного процесса. Другими словами, мы видим все возможные обращения MT4 к тем или инным файлам, видим результаты этих запросов, видим пути по которым ищутся файлы. В результате оказалось, что отсутствовали абсолютно странные библиотеки о который умалчивал Dependency Walker.
В-третьих, терминал ищет используемые советником DLL-ки в каталоге Terminal_folder\experts\libraries\, а вот если DLL-ка тянет за собой что-то другое, то эти либы должны находиться либо в системных каталогах (system/system32), либо же в одном каталоге вместе с бинарем MT4 (terminal.exe).