Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Проверка на наличие выделенной памяти это стандартная и минимальная вещь в любой библиотеке и вариантов применения этому много бывает. Вы же сами такую функцию написали почему-то.
А размер этой выделенной памяти можно узнать с помощью какой-то функции?
Проверка наличие памяти нужна только, чтобы не читать и не писать где она не выделена. Вы перед получением значения переменной проверяете её наличие? Это тоже самое.
Максимально упростил всё. Не надо проверять наличие памяти, ибо она всегда есть для пользователя. Так же не надо заботится о размере памяти. Она всегда будет такой, как затребована. Нужны только функции чтения и записи.
Этот скрипт у меня работает:
Наверняка, у Вас показывает наличие памяти с таким именем из-за того, что ранее уже выделили память с таким именем. Перезагрузите комп для чистоты эксперимента.
Посмотрите тестовый скрипт. Там описано применение всех функций.
Андрей, написано ведь черным по белому - SIZE.
нет, весь массив целиком
зачем же гадать, если вам доступен ПОЛНОСТЬЮ ИСХОДНЫЙ КОД, в отличии от закрытой SharedMemoryMT4
Андрей, написано ведь черным по белому - SIZE.
зачем же гадать, если вам доступен ПОЛНОСТЬЮ ИСХОДНЫЙ КОД, в отличии от закрытой SharedMemoryMT4
SIZE имеется ввиду всего массива туда надо занести чтобы заработало? Исходные коды к сожалению не осилил, где там скрыта формула смещения чтобы всё работало, а в примерах это не понятно.
еще раз
pos - с какой позиции
sz - сколько байт
Ну дык часть функций там нерабочие, та же MemoryCheckName().
// Это просто очистка памяти. Саму область памяти не удаляет.
Так как тогда удалить выделенную область памяти?еще раз
pos - с какой позиции
sz - сколько байт
Ну дык часть функций там нерабочие, та же MemoryCheckName().
Так как тогда удалить выделенную область памяти?Привёл пример рабочий. Опять не работает? Может всё же в тестовый скрипт загляните?
Есть примеры, подробнейшие описания каждой функции... Не помогает?
Вот функции для закрытия:
Кстати, почитайте внимательно описание. Там описана концепция библиотеки. У каждой пользовательской области памяти может быть несколько дескрипторов. Нет смысла заморачиваться на каком-то конкретном дескрипторе. Работа идёт с одной именованной областью памяти. Дескрипторы не нужны пользователю. Все функции, кроме функций чтения/записи, нужны только для тонкой настройки работы с памятью для увеличения скорости.
Вот функции для закрытия:
MemoryCloseName() работает, остальные функции не подходят так как невозможно узнать дескриптор. Спасибо!
Написал же выше, не нужны Вам дескрипторы!
Дескриптор можно получить функциями, которые предварительно создают и открывают отображение. Это нужно для ускорения работы с памятью. Даже в этом случае дескриптор не нужен.
Посмотрите тестовый скрипт. Там все варианты представлены.
Написал же выше, не нужны Вам дескрипторы!