Алекс, а ты предусматривал передачу хендла виртуального файла в чужой поток?
чё то я не нашёл, если есть ткни пожалуйста где.
ЗЫ а вообще толковая вещичка вышла.
Алекс, а ты предусматривал передачу хендла виртуального файла в чужой поток?
а в чем проблема то?
Да проблем нет, я инкапсулировал хендл передал в другой объект, всё работает.
Просто ищу где ты предусматривал такую передачу доступа к файлу.
в классе CMemMapApi хендл памяти должна хранить сама использующая его(этот объект) программа.
а в CMemMapFile - хендл записан в паблик m_hmem
в классе CMemMapApi хендл памяти должна хранить сама использующая его(этот объект) программа.
а в CMemMapFile - хендл записан в паблик m_hmem
Тогда я чё то полохо непонял :)
уточни после закрытия файла его можно открыть в другой проге или
он уничтожается после закрытия?
и когда уничтожается файл и освобождается память?
Тогда я чё то полохо непонял :)
уточни после закрытия файла его можно открыть в другой проге или
он уничтожается после закрытия?
и когда уничтожается файл и освобождается память?
Ага разобрался, можно не передавать хендлы, а просто сделать новое открытие в новом потоке по имени файла.
ну дык Николай, а зачем же я все это делал то ? :) конечно, чтоб разный софт, мог одновременно в один общий файл писать/читать.
Alex, спасибо за Ваши труды. Я пока не пробовал использовать, так как для меня это пока новая тема, нужно почитать (Рашид подсказал статьи). Только вот такой вопрос на данный момент. В названии темы подчёркнуто - без DLL. Но обращение к kernel32.dll и к msvcrt.dll есть. То есть для Маркета это решение не подходит?
Для маркета не подходит(хотя это ещё под вопросм), но Ренат говорил что подумает о реализации подобных вещей в стандарте MQL5.
В названии имелось в виду без самописных длл, всё же стандартные длл винды, более безопасны чем самописные.
В названии имелось в виду без самописных длл, всё же стандартные длл винды, более безопасны чем самописные.
да, имелось ввиду именно без самописных. А стандартные безопасны в том смысле, что всем изветсно, что они делают.
для маркета это решение (по существующим правилам) не подходит
но в маркете (я очень надеюсь), что примут за базовый предложенный мной вариант - можно публиковать эксперт, вызывающий функции из ex5-библиотеки.
То есть все dll вызовы ложатся в ex5, который в маркете не выставляется, а лежит или в кодебазе или у разработчика на сайте.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
File Mapping без DLL:
Класс MQL5, который работает напрямую с маппингом, без использования самописной DLL.
Исходный проект для C++ опубликован в CodeBase: Memory Mapping.
В комплекте находится скрипт с примером использования.
Автор: o_o