Как открыть файл ex5

Обновлено: 21.08.2024

Распаковка файлов EX_ в исполняемые файлы EXE

Файл с расширением EX_ является сжатым файлом EXE. Этот формат хранит EXE-файл меньшего размера для экономии места на диске. Вы также можете найти формат EX_ в сжатых установочных файлах, которые вы загружаете из Интернета.

Windows не может выполнить файл EX_. Например, вы не можете случайно открыть файл EX_ для запуска (возможно, вредоносной или нежелательной) программы, пока расширение файла не будет переименовано в EXE.

Будьте внимательны при открытии всех видов исполняемых файлов с такими расширениями, как EXE, COM, BAT и другими, с которыми вы не знакомы. Эти файлы могут быть чрезвычайно опасны для вашей системы, личных данных и общей безопасности. Никогда не открывайте исполняемый файл, отправленный вам по электронной почте или если вы не знаете, что он делает.

Как открыть файл EX_

Сначала вам нужно преобразовать файл EX_ в файл EXE, прежде чем вы сможете запустить файл. Это можно сделать с помощью команды раскрыть из командной строки в Windows.

Откройте проводник Windows и перейдите к расположению файла EX_. В папке, где нет файлов, нажмите Shift + , щелкнув правой кнопкой мыши . В открывшемся контекстном меню выберите Открыть командное окно здесь ; если вы используете Windows 10, выберите Открыть окно PowerShell здесь .

Новый EXE-файл будет создан как названный. В исходный файл EX_ не будет внесено никаких изменений.

Другой вариант ввода команды expand : откройте командную строку и введите команду expand , а затем пробел. Затем просто перетащите файл EX_ в командную строку и удалите его. Это автоматически заполнит местоположение файла EX_ и имя. Наконец, введите имя EXE-файла, который вы хотите вызвать расширенный файл.

Когда EX_ не является сжатым EXE-файлом

Если описанный выше метод не работает, убедитесь, что файл EX_ на самом деле является сжатым файлом EXE. Используя Notepad ++, откройте файл EX_. Notepad ++ может раскрыть некоторую описательную информацию, которая может помочь вам определить, какую программу следует использовать для открытия этого файла. Если вы обнаружите, что для открытия файла EX_ следует использовать определенное приложение, вы можете изменить программу по умолчанию для этого расширения файла.

Вы также можете обнаружить, что файл EX_ на самом деле не сжат, а является файлом EXE, расширение которого было просто переименовано в EX_, вы можете вернуть его в формат исполняемого файла. Нажмите правой кнопкой мыши на файле и выберите Переименовать . Измените расширение с .ex_ на .exe и нажмите Enter . Затем вы можете просто дважды щелкнуть по нему, чтобы открыть его в Windows.

Если у вас есть файлы EX5, которые нужно открыть, но вы не знаете, как это сделать, выполните следующие действия.

Установить необязательные продукты - File Magic (Solvusoft) | EULA | Privacy Policy | Terms | Uninstall

Шаг 1: Дважды щелкните файл.

Найдите значок файла EX5 и дважды щелкните его. Если у вас установлена ​​правильная программа, она должна открывать файл автоматически. Если это не так, перейдите к шагу 2.

Шаг 2: Ищите другую программу.

Если файл EX5 не открывается при двойном щелчке по нему, у вас, вероятно, нет нужной программы на вашем компьютере. Существует несколько популярных программ, которые можно использовать для открытия файла EX5. Попробуйте одну из наиболее распространенных программ: Binary Data.

Шаг 3: Проверьте тип файла.

Если ни одна из вышеперечисленных программ не откроет ваш файл EX5, проверьте тип файла, чтобы убедиться, что у вас есть программа, которая может открыть этот тип файла. Большинство файлов EX5 составляют Uncommon Files, но есть шанс, что это может быть другой тип.

Вы можете найти эту информацию в свойствах файла. На компьютере с Windows просто щелкните файл правой кнопкой мыши и щелкните свойства и найдите тип файла в разделе «Тип файла». На компьютере Mac щелкните правой кнопкой мыши файл и нажмите «Дополнительная информация» и найдите тип файла в разделе «Вид».

Шаг 4: Получите помощь от разработчика.

Если вы не можете понять, как открыть файл EX5, разработчик, вероятно, скажет вам, как это сделать. Найдите программу, указанную в таблице ниже, и свяжитесь с разработчиком этой программы.

Название программы Имя разработчика
Binary Data Microsoft Developer

Шаг 5: Найти универсальный просмотрщик файлов.

Самый простой способ открыть файл EX5 или любой файл - использовать универсальный просмотрщик файлов, например File Magic (Download). Вы можете использовать его, чтобы открыть много разных форматов файлов. Если он несовместим, файл будет просто открыт в двоичном формате.

Рекомендуем

Установить необязательные продукты - File Magic (Solvusoft) | EULA | Privacy Policy | Terms | Uninstall

Microsoft Partner Silver Application Development

Открывает все ваши файлы, как
МАГИЯ! 1

Установить необязательные продукты - File Magic (Solvusoft)
EULA | Privacy Policy | Terms | Uninstall

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

Просмотр файлов


Для искушенного читателя не нужно объяснять назначение возможности сокрытия реализации функций и классов в библиотеках. Для тех, кто находится в активном поиске, скажем, что с помощью сокрытия реализации функций/классов в ex5-файл вы сможете делиться своими ноу-хау алгоритмами с другими программистами, создавать общие проекты и продвигать их в сети.

Пока команда MetaQuotes всеми силами приближает возможность прямого наследования классов из ex5‑библиотек, мы реализуем эту возможность уже сейчас.


1. Экспорт и импорт функций

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

После компиляции этого файла вы получаете файл library.ex5, из которого функцию libfunc можете импортировать в другой программе.

Необходимо учесть, что ex5-файлы компилятор начинает искать из папки MQL5\Libraries. Если файл library.ex5 находится не в ней, то придется прописать относительный путь к нему.

Импортировать функции можно не только в конечный mq5-файл, но и в mqh-файлы для дальнейшей работы.

В качестве наглядного практического примера сделаем работу с графикой.

Создадим библиотеку функций на экспорт. Эти функции будут выводить на указанный чарт графические объекты, а именно: Button, Edit, Label, Rectangle Label, также функцию очистки графика от объектов и сброс цветовых параметров чарта.

Схематически это можно представить следующим образом:

Полный файл Graph.mq5 можете взять внизу статьи. Здесь приведем только один шаблонный пример функции для рисования Edit.

В конечном файле Spiro.mq5 сделаем импорт требуемых функций и используем их:

В результате запуска эксперта на чарте появятся объекты:

Как видите, экспорт и импорт функций не является сложным, но о некоторых их ограничениях обязательно прочтите в справке: export, import.


2. Экспорт скрытой реализации классов

Прямого экспорта классов в MQL5 пока что нет, поэтому приходится прибегать к немного изощренному способу. Он основан на свойстве полиморфизма и виртуальности функций. В действительности из ex5-модуля возвращается не сам класс, а его созданный объект. Назовем его объект скрытой реализации.

Суть метода заключается в том, чтобы разделить требуемый класс на два класса таким образом, чтобы объявление функций и переменных было в открытом доступе, а их реализация в закрытом ex5-файле.

Покажем, как это делается на простом примере. У нас имеется класс CSpiro, работой которого мы хотим поделиться с другими программистами, но его реализацию не желаем показывать. Пусть в нем имеются переменные, конструктор, деструктор и рабочие функции.

Для создания экспорта нам необходимо сделать следующее:

  • Создать клон-потомка от CSpiro класса. Назовем его ISpiro (первая буква класса заменена с C на I, от слова interface)
  • Все переменные и пустышки функции оставить в исходном CSpiro.
  • Все реализации функций вынести в новый ISpiro класс.
  • В нем же добавить экспортную функцию, которая создаст экземпляр закрытого ISpiro.
  • Важно! Все требуемые функции должны иметь приставку virtual

В результате имеем два файла:

Обратите внимание, что все функции класса объявлены с ключевым словом virtual.

Также обратите внимание на разрешение контекста видимости функции SetPoint. Ее объявление присутствует как в библиотеке Graph так и в CSpiro. Чтобы компилятор вызвал нужную нам функцию мы открыто говорим ему про это с помощью операции :: и указываем имя файла.

Теперь в наш итоговый эксперт подключим заголовочный файл и импортируем его реализацию.

Схематически это можно изобразить следующим образом:

В результате на чарте вы сможете менять параметры объекта и строить его график

Параметры графического объекта


3. Инициализация переменных в ex5-файле

Часто встречается ситуация, когда ваш ISuperClass использует переменные из подключаемого файла globals.mqh. Эти переменные аналогично подключаются и используются в ваших других файлах.

Единственный экземпляр объекта _trade инициализируется в вашей программе, а используется в скрытом классе ISuperClass.

Для этого в ex5-файл с ISuperClass необходимо передать указатель на созданный вами объект.

Проще всего выполнить это в момент получения объекта из ex5-файла, то есть здесь:

Таким образом, при получении объекта мы инициализируем в его модуле все требуемые переменные.

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

Файл ISuperClass.mq5 получит такую реализацию:

Вызов функции теперь получит такой упрощенный и главное расширяемый вариант.


4. Наследование экспортных классов

Как вы уже поняли, при таком виде экспорта объектов, ни о каком прямом и простом наследовании речи быть не может. Экспорт объекта скрытой реализации подразумевает, что этот самый объект является самым последним в цепочке наследования и он тот, которым можно пользоваться в конечном итоге.

В общем случае можно создать "эмуляцию" наследования, написав дополнительный промежуточный класс. И конечно же, здесь нам поможет полиморфизм и виртуальность.

Единственный момент в работе такой связки – это доступ к переменным CSuperClass. Как вы видите, они отсутствуют в объявлении наследника и находятся в переменной _base. Обычно это не влияет на удобство использования, если вы имеете заголовочный класс SuperClass.mqh.

Конечно, если ваша основная работа будет заключена именно в ноу-хау функциях, то делать заранее для них обертку ISuperClass необязательно. Достаточно сделать экспорт тех самых ноу-хау функций и предоставить стороннему программисту самому создавать свои оберточные классы, которые потом можно будет легко наследовать.

  1. Экспорт функций, которые независимы от классов
  2. Заголовочные файлы mqh и ex5-реализации
  3. Инициализацию переменных ex5 файлов


5. Публикация ex5-библиотек

С ноября 2011 года компания MetaQuotes предоставляет доступ к хранилищу файлов. Подробнее можно прочитать в анонсе.

В данном репозитории вы можете хранить свои разработки и главное – давать доступ другим программистам к этим разработкам. С помощью данного инструмента вы легко и быстро можете публиковать новые версии своих файлов, чтобы программисты, которые их используют, получали их как можно быстрее.

Также на сайте компании есть Маркет, где вы сможете предоставлять свои библиотеки функций на коммерческой основе или бесплатно.

Заключение

Итак, теперь вы знаете и умеете создавать ex5-библиотеки с экспортом своих функций или объектов классов. Все эти возможности позволят вам организовать более тесное сотрудничество с другими программистами: работать над общими проектами, продвигать их в Маркете или предоставлять доступ к библиотечным ex5-функциям.

Для искушенного читателя не нужно объяснять назначение возможности сокрытия реализации функций и классов в библиотеках. Для тех, кто находится в активном поиске, скажем, что с помощью сокрытия реализации функций/классов в ex5-файл вы сможете делиться своими ноу-хау алгоритмами с другими программистами, создавать общие проекты и продвигать их в сети.

Пока команда MetaQuotes всеми силами приближает возможность прямого наследования классов из ex5‑библиотек, мы реализуем эту возможность уже сейчас.


1. Экспорт и импорт функций

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

После компиляции этого файла вы получаете файл library.ex5, из которого функцию libfunc можете импортировать в другой программе.

Необходимо учесть, что ex5-файлы компилятор начинает искать из папки MQL5\Libraries. Если файл library.ex5 находится не в ней, то придется прописать относительный путь к нему.

Импортировать функции можно не только в конечный mq5-файл, но и в mqh-файлы для дальнейшей работы.

В качестве наглядного практического примера сделаем работу с графикой.

Создадим библиотеку функций на экспорт. Эти функции будут выводить на указанный чарт графические объекты, а именно: Button, Edit, Label, Rectangle Label, также функцию очистки графика от объектов и сброс цветовых параметров чарта.

Схематически это можно представить следующим образом:

Полный файл Graph.mq5 можете взять внизу статьи. Здесь приведем только один шаблонный пример функции для рисования Edit.

В конечном файле Spiro.mq5 сделаем импорт требуемых функций и используем их:

В результате запуска эксперта на чарте появятся объекты:

Как видите, экспорт и импорт функций не является сложным, но о некоторых их ограничениях обязательно прочтите в справке: export, import.


2. Экспорт скрытой реализации классов

Прямого экспорта классов в MQL5 пока что нет, поэтому приходится прибегать к немного изощренному способу. Он основан на свойстве полиморфизма и виртуальности функций. В действительности из ex5-модуля возвращается не сам класс, а его созданный объект. Назовем его объект скрытой реализации.

Суть метода заключается в том, чтобы разделить требуемый класс на два класса таким образом, чтобы объявление функций и переменных было в открытом доступе, а их реализация в закрытом ex5-файле.

Покажем, как это делается на простом примере. У нас имеется класс CSpiro, работой которого мы хотим поделиться с другими программистами, но его реализацию не желаем показывать. Пусть в нем имеются переменные, конструктор, деструктор и рабочие функции.

Для создания экспорта нам необходимо сделать следующее:

  • Создать клон-потомка от CSpiro класса. Назовем его ISpiro (первая буква класса заменена с C на I, от слова interface)
  • Все переменные и пустышки функции оставить в исходном CSpiro.
  • Все реализации функций вынести в новый ISpiro класс.
  • В нем же добавить экспортную функцию, которая создаст экземпляр закрытого ISpiro.
  • Важно! Все требуемые функции должны иметь приставку virtual

В результате имеем два файла:

Обратите внимание, что все функции класса объявлены с ключевым словом virtual.

Также обратите внимание на разрешение контекста видимости функции SetPoint. Ее объявление присутствует как в библиотеке Graph так и в CSpiro. Чтобы компилятор вызвал нужную нам функцию мы открыто говорим ему про это с помощью операции :: и указываем имя файла.

Теперь в наш итоговый эксперт подключим заголовочный файл и импортируем его реализацию.

Схематически это можно изобразить следующим образом:

В результате на чарте вы сможете менять параметры объекта и строить его график

Параметры графического объекта


3. Инициализация переменных в ex5-файле

Часто встречается ситуация, когда ваш ISuperClass использует переменные из подключаемого файла globals.mqh. Эти переменные аналогично подключаются и используются в ваших других файлах.

Единственный экземпляр объекта _trade инициализируется в вашей программе, а используется в скрытом классе ISuperClass.

Для этого в ex5-файл с ISuperClass необходимо передать указатель на созданный вами объект.

Проще всего выполнить это в момент получения объекта из ex5-файла, то есть здесь:

Таким образом, при получении объекта мы инициализируем в его модуле все требуемые переменные.

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

Файл ISuperClass.mq5 получит такую реализацию:

Вызов функции теперь получит такой упрощенный и главное расширяемый вариант.


4. Наследование экспортных классов

Как вы уже поняли, при таком виде экспорта объектов, ни о каком прямом и простом наследовании речи быть не может. Экспорт объекта скрытой реализации подразумевает, что этот самый объект является самым последним в цепочке наследования и он тот, которым можно пользоваться в конечном итоге.

В общем случае можно создать "эмуляцию" наследования, написав дополнительный промежуточный класс. И конечно же, здесь нам поможет полиморфизм и виртуальность.

Единственный момент в работе такой связки – это доступ к переменным CSuperClass. Как вы видите, они отсутствуют в объявлении наследника и находятся в переменной _base. Обычно это не влияет на удобство использования, если вы имеете заголовочный класс SuperClass.mqh.

Конечно, если ваша основная работа будет заключена именно в ноу-хау функциях, то делать заранее для них обертку ISuperClass необязательно. Достаточно сделать экспорт тех самых ноу-хау функций и предоставить стороннему программисту самому создавать свои оберточные классы, которые потом можно будет легко наследовать.

  1. Экспорт функций, которые независимы от классов
  2. Заголовочные файлы mqh и ex5-реализации
  3. Инициализацию переменных ex5 файлов


5. Публикация ex5-библиотек

С ноября 2011 года компания MetaQuotes предоставляет доступ к хранилищу файлов. Подробнее можно прочитать в анонсе.

В данном репозитории вы можете хранить свои разработки и главное – давать доступ другим программистам к этим разработкам. С помощью данного инструмента вы легко и быстро можете публиковать новые версии своих файлов, чтобы программисты, которые их используют, получали их как можно быстрее.

Также на сайте компании есть Маркет, где вы сможете предоставлять свои библиотеки функций на коммерческой основе или бесплатно.

Заключение

Итак, теперь вы знаете и умеете создавать ex5-библиотеки с экспортом своих функций или объектов классов. Все эти возможности позволят вам организовать более тесное сотрудничество с другими программистами: работать над общими проектами, продвигать их в Маркете или предоставлять доступ к библиотечным ex5-функциям.

Читайте также: