Здравствуйте, спасибо за интересную работу. Но у меня почему-то при попытке что либо записать или прочитать выдаются такие шибки:
В чем может быть причина? Посмотрел видео, запускаю все так же. Заранее спасибо.
Здравствуйте, спасибо за интересную работу. Но у меня почему-то при попытке что либо записать или прочитать выдаются такие шибки:
В чем может быть причина? Посмотрел видео, запускаю все так же. Заранее спасибо.
Спасибо! Разбираюсь. Скорее всего, это связано с идентификацией пользователя. Не догадался проверить на незарегистрированном счёте. У меня-то работает :-)
==================
Исправил. Нет ничего надёжнее параноидальной защиты :-)) Так защитился, что сам её искал в коде час.
Думаю, до конца дня обновят.
Здравствуйте, спасибо за интересную работу. Но у меня почему-то при попытке что либо записать или прочитать выдаются такие шибки:
В чем может быть причина? Посмотрел видео, запускаю все так же. Заранее спасибо.
Спасибо! Разбираюсь. Скорее всего, это связано с идентификацией пользователя. Не догадался проверить на незарегистрированном счёте. У меня-то работает :-)
==================
Исправил. Нет ничего надёжнее параноидальной защиты :-)) Так защитился, что сам её искал в коде час.
Думаю, до конца дня обновят.
Спасибо! проверим.
Извиняюсь за наглость))) У вас случайно нет примера для работы с этой библиотекой в C или Delphi?
Почему же наглость? Нормальный вопрос.
Для С++ надо:
1. Файл SharedMemoryMT4.lib.
2. Файл SharedMemoryMT4.h.
3. Примеры такие же, что в MQL4. Они находятся в файле Check_SharedMemoryMT4.dll.mq4.
4. Есть одна особенность для работы со сторонним приложением. Есть недокументированная функция, которая инициализирует библиотеку, как будто она работает с МТ4. Но для незарегистрированных пользователей это не важно.
5. Есть пример тестовый для С++. Тестировал эту библиотеку удалённо из EXE.
Если надо, то вложу в архив или альтернативно можно пообщаться.
Если не трудно, можно выложить пример? И еще вопрос, библиотека идет с ограничениями для незарегестрированных пользователей?
Если не трудно, можно выложить пример? И еще вопрос, библиотека идет с ограничениями для незарегестрированных пользователей?
Пример С++, так понимаю? Ограничение на количество имён. На память нет ограничений. Просто удобство такое.
Эта библиотека используется в моём программном комплексе. Такая защита от несанкционированного использования. Комплекс работает со множеством имён. С ограничением работать не будет.
Если не трудно, можно выложить пример? И еще вопрос, библиотека идет с ограничениями для незарегестрированных пользователей?
Пример С++, так понимаю? Ограничение на количество имён. На память нет ограничений. Просто удобство такое.
Эта библиотека используется в моём программном комплексе. Такая защита от несанкционированного использования. Комплекс работает со множеством имён. С ограничением работать не будет.
Да, пример на C++.
void _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) { try { tcout << _T("Создаём отображение с именем \"Test1\".") << ENDL; hMapping = ::MemoryCreate(MEMORY_GLOBAL, "", NULL, -1, "Test1", 64000); // Создаём отображение. tcout << _T("Системный дескриптор: ") << hMapping << ENDL; tcout << _T("Записываем строку \"Привет мир!\".") << ENDL; ::MemoryWriteString(MEMORY_GLOBAL, "", -1, "Test1", 4, "Привет мир!"); tcout << _T("Записываем строку \"Мир привет!\".") << ENDL; ::MemoryWriteString(MEMORY_GLOBAL, "", -1, "Test1", 16, "Мир привет!"); tcout << _T("Читаем строки:") << ENDL; tcout << ::MemoryReadString(MEMORY_GLOBAL, "", -1, "Test1", 4, 30) << ENDL; tcout << ::MemoryReadString(MEMORY_GLOBAL, "", -1, "Test1", 16, 30) << ENDL; tcout << _T("Закрываем файловое отображение по имени \"Test1\": ") << ::MemoryCloseName(MEMORY_GLOBAL, "", "Test1") << ENDL2; tcout << _T("Создаём отображение с именем \"Test2\".") << ENDL; hMapping = ::MemoryCreate(MEMORY_GLOBAL, "", NULL, -1, "Test2", 64000); // Создаём отображение. tcout << _T("Системный дескриптор: ") << hMapping << ENDL; tcout << _T("Проецируем отображение с именем \"Test2\": ") << ::MemoryProjectionByHandle(MEMORY_GLOBAL, "", -1, hMapping) << ENDL; tcout << _T("Записываем строку \"Привет мир\".") << ENDL; ::MemoryWriteString(MEMORY_GLOBAL, "", -1, "Test2", 4, "Привет мир!"); tcout << _T("Записываем строку \"Мир привет!\".") << ENDL; ::MemoryWriteString(MEMORY_GLOBAL, "", -1, "Test2", 16, "Мир привет!"); tcout << _T("Читаем строки:") << ENDL; tcout << ::MemoryReadString(MEMORY_GLOBAL, "", -1, "Test2", 4, 30) << ENDL; tcout << ::MemoryReadString(MEMORY_GLOBAL, "", -1, "Test2", 16, 30) << ENDL; tcout << _T("Закрываем файловое отображение по имени \"Test2\": ") << ::MemoryCloseName(MEMORY_GLOBAL, "", "Test2") << ENDL2; tcout << _T("Создаём и проецируем отображение с именем \"Test3\".") << ENDL; hMapping = ::MemoryCreateProjection(MEMORY_GLOBAL, "", NULL, -1, "Test3", 64000); // Создаём отображение. tcout << _T("Системный дескриптор: ") << hMapping << ENDL; tcout << _T("Записываем строку \"Привет мир!\".") << ENDL; ::MemoryWriteString(MEMORY_GLOBAL, "", -1, "Test3", 4, "Привет мир!"); tcout << _T("Записываем строку \"Мир привет!\".") << ENDL; ::MemoryWriteString(MEMORY_GLOBAL, "", -1, "Test3", 4100, "Мир привет!"); tcout << _T("Читаем строки:") << ENDL; tcout << ::MemoryReadString(MEMORY_GLOBAL, "", -1, "Test3", 4, 30) << ENDL; tcout << ::MemoryReadString(MEMORY_GLOBAL, "", -1, "Test3", 4100, 30) << ENDL; tcout << _T("Закрываем файловое отображение по имени \"Test3\": ") << ::MemoryCloseName(MEMORY_GLOBAL, "", "Test3") << ENDL2; } catch(tstring &sException) { Utils::Debugging::MessageBoxStop(_T("SharedMemoryMT4.exe"), sException); } catch(LPTSTR szException) { Utils::Debugging::MessageBoxStop(_T("SharedMemoryMT4.exe"), szException); } catch(PWORD pawException) { Utils::Debugging::MessageBoxStop(_T("SharedMemoryMT4.exe"), Utils::Protection::DecodingString<tstring>(pawException, 0, 1000)); } catch(...) { Utils::Debugging::MessageBoxStop(_T("SharedMemoryMT4.exe"), _T("Системная ошибка!") + LAST_ERROR); } Utils::DeinitPointerCS(); // Очищаем ресурсы. tcout << ENDL << _T("ДЛЯ ЗАВЕШЕНИЯ ОТЛАДКИ И ВЫХОДА ИЗ ПРИЛОЖЕНИЯ НАЖМИТЕ \"ENTER\".") << ENDL; PAUSE; }Это пример на С++
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
SharedMemory.dll v4.2.7.0.:
Author: Vadim Zhunko