Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вот мой если надо 453-995-911
А вот так что не работает:
procedure exm1(str: PChar); stdcall;
begin
StrSpy(str, 'qwe');
end;
str должна в MQL быть проинициализирована вот так
for(i = 0; i < 4; i++) str = str + " ";
1) StrCopy(Str, 'qwe');
2) StrLCopy(Str, 'qwe', 6);
3) StrPCopy(Str, 'qwe');
4) StrPLCopy(Str, 'qwe', 6);
5) StrCat(Str, 'qwe');
6) StrLCat(Str, 'qwe', 6);
Вот, я их в справке нашел (привожу только две функции, которыми думаю надо пользоваться, остальные похожи)
Copies an AnsiString (long string) to a null-terminated string.
Unit
SysUtils
Category
string handling routines (null-terminated)
Delphi syntax:
function StrPCopy(Dest: PChar; const Source: string): PChar;
C++ syntax:
extern PACKAGE char * __fastcall StrPCopy(char * Dest, const AnsiString Source);
Description
StrPCopy copies Source into a null-terminated string Dest. It returns a pointer to Dest.
StrPCopy does not perform any length checking.
The destination buffer MUST (должен) have room for at least Length(Source)+1 characters.
Copies characters from an AnsiString (long string) into a null-terminated string.
Unit
SysUtils
Category
string handling routines (null-terminated)
Delphi syntax:
function StrPLCopy(Dest: PChar; const Source: string; MaxLen: Cardinal): PChar;
C++ syntax:
extern PACKAGE char * __fastcall StrPLCopy(char * Dest, const AnsiString Source, unsigned MaxLen);
Description
StrPLCopy copies up to a maximum of MaxLen characters from Source into the null-terminated string Dest. StrPLCopy returns a pointer to Dest.
Note: Dest should (должен) point to a location with room for MaxLen + 1 characters, including the null terminator.
Остается вопрос какую функцию выбрать? Хотелось бы ту, которая наиболее коректно работала бы!
elritmo скажи, что думаешь, а то я в программировании мало знаю!
Я сам в делфи не использовал StrSpy(). Вероятно это функция StrPCopy.
Да судя по описанию это и должно быть копирование строки. Если работает то и хорошо.
Лучше всё же инициализировтать строку в советнике делая заданной длины потому что если передашь довольно длинную строку то может упасть программа. Видимо для скорости работы со string MQ уже выделяет буфер в памяти даже для пустой строки поэтому то ты и можешь туда записать короткую строку. Но не известно что получится если строка будет длинная. Попробуй для теста передать строку подлинее.
В аске тебя нет