Всем привет, с новым билдом слышал - нельзя передавать строки в длл
Есть набор функций записи в файл:
#import "KERNEL32.dll" int _lopen (string path, int of); int _lcreat (string path, int attrib); int _llseek (int handle, int offset, int origin); int _lread (int handle, string buffer, int bytes); int _lwrite (int handle, string buffer, int bytes); int _lclose (int handle); #import
Эти функции оставлены для совместимости c 16 битными приложениями!
Пора бы уже повзрослеть... :-)) до ReadFile() и WriteFile().
Вот есть библиотека. Замените там постфиксы с A на W. Будет работать.
Кто-нибудь уже нашел способ решения?
Про ReadFile WriteFile полностью согласен.
Спасибо. ReadFile() и WriteFile().пробовал когда-то, но почему то они мне не подошли.
Нет привычного стука колёс?
Я уже минимум два раза писал с примерами. Если у функции нет W аналога, конвертить в uchar и передавать массив.
Про ReadFile WriteFile полностью согласен.
спасибо про W это я знаю,
про свои длл тоже знаю,
я про функции которые была когда-то востребованы из-за легкости кода.
Спасибо учел все ответы и свои геморные вопросы - :-) буду заниматься.
Катался на дрезине. Подарили вертолёт. Почему-то он мне не подошёл.
Нет привычного стука колёс?
:)))) +++
Вадим - привет, развеселил!!! спасибо
Всем привет, с новым билдом слышал - нельзя передавать строки в длл
Но следует учесть, что формат строки изменился.
Для 32 бит:
struct MqlString { int buffer_size; wchar_t *buffer; int reserved; };Для 64 бит:
struct MqlString { int buffer_size; wchar_t *buffer; };
mql5:
Так разрешено передавать массивы строк, теперь это будет возможно и в 5ке.
Но следует учесть, что формат строки изменился.
Для 32 бит:
struct MqlString { int buffer_size; wchar_t *buffer; int reserved; };Для 64 бит:
struct MqlString { int buffer_size; wchar_t *buffer; };
Спасибо! Про 64 не знал. Надо бы это в справку внести.
Теперь так:
typedef struct _MQLSTRA { int nLength; LPSTR szString; } MQLSTRA, *PMQLSTRA; typedef struct _MQLSTRW { int nLength; LPWSTR szString; #if !defined(WIN64) && !defined(_WIN64) int nReserved; #endif } MQLSTRW, *PMQLSTRW; #if defined(UNICODE) || defined(_UNICODE) typedef MQLSTRW MQLSTR, *PMQLSTR; #else typedef MQLSTRA MQLSTR, *PMQLSTR; #endif
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всем привет, с новым билдом слышал - нельзя передавать строки в длл
Есть набор функций записи в файл:
Есть функция непосредственнл:
в Новом билде эта конструкция естественно не работает.
Кто-нибудь уже нашел способ решения?