Скачать MetaTrader 5

Проблемы с параметрами по умолчанию в dll

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Forex Trader
114299
Forex Trader  
Вопрос к разработчикам. Вот простенькая dll написанная на Дельфи:
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, имено использования, а не вызова? Вызываться то они вызываются, только во многих случаях просто не работают. Поэтому, наверное, нет и примеров.

MetaQuotes Software Corp.
Модератор
189397
MetaQuotes Software Corp.  
Параметры по умолчанию в импортируемых функциях не работают, так как о них MQL4 программа ничего не знает. Их надо явно указывать.
Forex Trader
114299
Forex Trader  
Параметры по умолчанию в импортируемых функциях не работают, так как о них MQL4 программа ничего не знает. Их надо явно указывать.


Мало того что они не работают так и строка из дельфи несколько отличается от PChar которую передает метатрейдер :). Заголовок функции должен быть таким:
procedure ShowMsg(Msg: PChar; Title: PChar); stdcall;
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий