Куда бросать dll-ку или может индикатор не пашет? - страница 4

 
Исходники, исходники, только исходники впредь. Так лопухнуться :(((
 
Слава, не спора ради ...
Просто прокомментирую.

win 95 - это линейка продуктов в который входят ещё win 98 и win ME (это как вазовское десятое семейство)

В курсе.

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

У меня нет исходников.
Смотрел саму DLL вьювером,
и там были имена функций из вашего примера.

документация в стадии подготовки. наш проект MQL4.com (сайт для экспертописателей) также в стадии подготовки. так что, либо ждите, либо тыкайтесь и задавайте вопросы. на правильно заданные вопросы мы отвечаем всегда!

Замечательно.
И пока нет документации мы и тыкаемся и задаем вопросы.
Я к чему сказал про документацию - просто в МТ много пока недокументированных (и порой странных) особенностей, о которые все мы постоянно спотыкаемся. В результате я к примеру уже ни в чем не уверен. Тут может быть все что угодно (например запуск DLL пользователя только из определенной папки). И ссылки на MSDN тут уже никакой уверенности не дают.

это - нормальная практика для любого разработчика. а если Вы хотите разрабатывать собственные dll, то MSDN для Вас - первейший помощник.

Согласен.
Но речь была о другом.

с MSDN это никак не согласуется. в experts/libraries идёт обращение тогда, когда LoadLibrary не смогла загрузить dll, используя стандартный перебор путей поиска.

То есть уже есть исключение из правил (MSDN).
У меня просто нет уверенности что тут нет других исключений,
и нафига мне тут MSDN если в нем все эти исключения не описаны ...
Т.е. ваша ссылка на MSDN получается некорректной (при наличии исключений).

первым идёт каталог запуска программы, текущий каталог идёт вторым номером. а вот пути - это вообще шестой номер.

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

а тут ничего не надо думать. как я сказал выше, experts/libraries обрабатывается при неудаче стандартной загрузки.

Хорошо, что вы это сейчас сказали.
Может быть ктото прочитает эту ветку и ктото запомнит.
Для меня это было совсем неочевидно, и в хелпе мне это на глаза не попалось.

вскрытие (View Dependencies) показало, что данная dll в свою очередь требует для своей работы MSVCR71.dll. если указанной библиотеки нет, то и представленная ExpertSample.dll не сможет быть загружена

Спасибо, теперь проблема понятна,
и МТ тут действительно ни причем ...

PS. На этот мой пост можете не отвечать.
Спорить о чемто нет ни малейшего желания.
Просто хотел прокомментировать ваш ответ,
чтобы уточнить детали.
 
А я между неудачными и удачными попытками установить Гусеницу установил Adobe Acrobat, который мне и закинул MSVCR71.dll. Только связать установку Acrobat и работу индикатора мне и в голову не приходило. А чем в WinXP можно подглядеть список импортируемых библиотек? В Win95/98 утилита была "Быстрый просмотр", в XP ее нет.
 
Попробуйте #include и далее имя mqh в УГЛОВЫХ скобках.
...
#include <filename.mqh>
...

mqh соответственно, в include директории, а в нем - ссылка на dll:

#import "c:\CPP\Bin\filename.dll"

... декларации импортируемых функций



То есть, идея в том, что путь по умолчанию - это угловые скобки, а обычные кавычки - это путь относительно данной директории.

 
Уважаемый Quark. Если Вы ответили мне, то я наверное непонятно сформулировал вопрос. Берем любой exe-шник или dll-библиотеку и, ничего не зная о ней, хотим получить информацию о том, какие библиотеки она в свою очередь использует, какие функции экспортирует и т.п. Собственно, из-за чего и разраслась эта тема.
 
А чем в WinXP можно подглядеть список импортируемых библиотек? 


В ХР наверное ничем.
Список экспортируемых функций и импортируемых библиотек и функций
можно посмотреть любым текстовым просмотрщиком - FAR или даже Notepad.
Имена функций и библиотек там текстом лежат.

Это неудобно конечно, но если больше ничего под рукой нет, то можно.

 
Уважаемый Quark. Если Вы ответили мне, то я наверное непонятно сформулировал вопрос. Берем любой exe-шник или dll-библиотеку и, ничего не зная о ней, хотим получить информацию о том, какие библиотеки она в свою очередь использует, какие функции экспортирует и т.п. Собственно, из-за чего и разраслась эта тема.


Вообще-то я отвечал Rosh'у на самый первый пост. У него там в примере кода
#import "ExpertSample.dll" - без указания полного пути.
Вот я и предложил прописать путь и заодно в mqh взять путь (неполный) в угловые скобки. Если чего не так понял - извините, со мной это бывает...
 
Mak, спасибо за совет, уже нашел сам. Из дистрибутива Win XP запускаем Диск:\Support\Tools\Setup.exe. Устанавливается Windows Support Tools в папку Program Files. Там есть утилита depends.exe, которая прекрасно просматривает информацию exe и dll. Я ее назначил просмотрщиком для файлов этих типов в Total Commander.

Quark, так вроде ж выяснили, что библиотека MSVCR71.dll почти у всех отсутствует.
 
А я между неудачными и удачными попытками установить Гусеницу установил Adobe Acrobat, который мне и закинул MSVCR71.dll. Только связать установку Acrobat и работу индикатора мне и в голову не приходило. А чем в WinXP можно подглядеть список импортируемых библиотек? В Win95/98 утилита была "Быстрый просмотр", в XP ее нет.

Скачайте по ссылке программу Dependance Walker из Microsoft Visual Studio:
https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe?utm_campaign=MQL5.community

Чтобы увидеть всю подноготную файла запустите как:
depends.exe dllname.dll
Причина обращения: