Параметры по умолчанию в импортируемых функциях не работают, так как о них MQL4 программа ничего не знает. Их надо явно указывать.
Параметры по умолчанию в импортируемых функциях не работают, так как о них MQL4 программа ничего не знает. Их надо явно указывать.
Мало того что они не работают так и строка из дельфи несколько отличается от PChar которую передает метатрейдер :). Заголовок функции должен быть таким:
procedure ShowMsg(Msg: PChar; Title: PChar); stdcall;
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
library Proba; uses Windows, SysUtils, Classes; {$R *.res} procedure ShowMsg(Msg:String; Title:String='Dr. Right'); StdCall; begin MessageBox(GetActiveWindow,PChar(Msg),PChar(Title),MB_OK); //ShowMessage(Msg); end; Exports ShowMsg; begin end.Подскажите, как можно вызвать функцию из dll, чтобы использовать параметры по умолчанию? Пробовал я и так, и сяк. В лучшем случае, вместо заголовка выводиться сообщение, а вместо сообщения цифра 60. В худшем МТ4 просто вылетает. Вылетает он так же, в любом случае, если вместо функции MessageBox() в dll, использовать функцию ShowMessage(). И почему интерстно в Sample, нет примеров использования функций из dll, имено использования, а не вызова? Вызываться то они вызываются, только во многих случаях просто не работают. Поэтому, наверное, нет и примеров.