Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Интересно, можно ли получить реальный указатель на функцию. Указатели, полученные с помощью typedef, отлично работают внутри mql программы. Но к сожалению передать в dll мне их не удалось.
Если с++ + встроенный ассемблер можешь и в курсе что и как в стек кладется, а термины дальний и ближний вызов понятны, то можешь попробовать. Гарантию, что получится не дам, но по идее можно.
Где ошибка?
Ваш пример в коде совсем иной. Я пытаюсь взять значение по адресу.
В статье есть пример.
Ваш пример в коде совсем иной. Я пытаюсь взять значение по адресу.
В статье есть пример.
Выделил места, где идет запись по адресу. Однако, этот пример из статьи тоже вызывает краш.Я сразу понял, что Вы хотели. Уверен, что адрес, возвращаемый из WinAPI функций, нельзя использовать в MQL5. А вот в аргументы адрес передаётся верно.
Абсолютно убедиться можно было бы, написав простейшую DLL, которая показывает получаемый в аргументе адрес, и возвращает его. И сравнить в MQL5 результат. Здесь многие практикуют C.
Где ошибка?
Исправил ваше:
У вас везде Lenght должен быть не более 4
Копирование более 2Гб работает
Получение начального адреса массива:
Ваш пример в коде совсем иной. Я пытаюсь взять значение по адресу.
В статье есть пример.
Выделил места, где идет запись по адресу. Однако, этот пример из статьи тоже вызывает краш.конечно вызывает..прототипы от 4-ки (32-х битный адрес а-ля unsigned int), а компилишь/запускаешь в 5-ке (у неё 64)
никому нельзя доверять, используешь WinAPI - пиши прототипы сам. А лучше писать свою DLL, пусть она дёргает winapi, а наверх в mql отдаёт интерфейсы более высокого уровня
Копирование более 2Гб работает
Получение начального адреса массива:
Я момент с 64bit-адресом упустил. Но у меня с исправленным адресом всё равно крашится. Это точно должно работать? Полный пример исправленного кода fxsaber можно?
Пока что я при своём мнении - адрес из WinAPI несовместим с MQL.
Исправил ваше:
конечно вызывает..прототипы от 4-ки (32-х битный адрес а-ля unsigned int), а компилишь/запускаешь в 5-ке (у неё 64)
Спасибо, теперь работает.
последний параметр (который cnt) тоже 64 бита. Он size_t
https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/memcpy-wmemcpy