Помогите, пожалуйста, StartDde ругается
Решил перейти с версии 1.8 на 2.1 но при старте DDE выдается
исключение: "Нет информации о главном окне Quik.Возможно, было
неуспешное подключение." При этом примеры из 2.1 работают. Verifer
только ошибку о колонке Статус в таблице инструментов, что она должна
имет индекс 4. Но при этом примеры то работают, а точно такой же код у
меня в проекте не работает. Может где-то что-то упустил, не знаю куда
и смотреть. Ссылки все из проекта удалил, библиотеки тоже все заменил,
все ошибки поправил. Вот код кнопки подключения.
private void button1_Click(object sender, EventArgs e)
{
if (!_isConnected)
{
if (globalsett1.quickpath.IsEmpty())
MessageBox.Show("Путь к Quik не указан");
else
{
if (this.Trader == null)
{
// создаем шлюз
try
{
this.Trader = new
QuikTrader(globalsett1.quickpath) { IsFullDdeExport = true };
var columns =
this.Trader.SecuritiesTable.Columns;
columns[columns.IndexOf(DdeSecurityColumns.LastTradeTime)] =
DdeSecurityColumns.LastChangeTime;
columns.Add(DdeSecurityColumns.MinStepPrice);
this.Trader.NewSecurities += securities =>
treeView1.BeginInvoke((Action)(()=>
{
tree_sec_add(securities);
tree_view_refresh();
}));
this.Trader.SecuritiesChanged += securities =>
dataGridView1.BeginInvoke((Action)(() =>
{
grid_refresh();
}));
// создаем менеджер переподключения (будет
автоматически соединяться
// каждые 10 секунд, если шлюз потеряется
связь с сервером)
_reConnectionManager = new
ReConnectionManager(this.Trader, new Range<TimeSpan>[0],
TimeSpan.FromSeconds(10));
_reConnectionManager.ConnectionRestored += ()
=>
{
MessageBox.Show("Соединение
восстановлено");
//Thread.Sleep(20 * 1000);
this.Trader.Reconnect();
StartDde();
//this.Trader.IsAsyncMode = true;
};
this.Trader.ConnectionError += error =>
MessageBox.Show("Соединение с Quik потеряно, предпринимается попытка
перподключения");
this.Trader.Connect();
StartDde();
//this.Trader.IsAsyncMode = true;
// возводим флаг, что соединение установлено
(происходит автоматически при создании шлюза)
_isConnected = true;
this.button1.Text = "Отключиться";
}
catch (Exception a)
{
MessageBox.Show(a.Message.ToString());
this.Trader.Dispose();
this.Trader = null;
}
}
else
try
{
this.Trader.Connect();
//this.Trader.IsAsyncMode = true;
StartDde();
_isConnected = true;
this.button1.Text = "Отключиться";
}
catch (Exception b)
{
MessageBox.Show(b.Message.ToString());
this.Trader.Dispose();
this.Trader = null;
}
}
}
else
{
try
{
this.Trader.Disconnect();
StopDde();
_isConnected = false;
this.button1.Text = "Соединиться";
}
catch (Exception c)
{
MessageBox.Show(c.Message.ToString());
this.Trader.Dispose();
}
}
}
private void StartDde()
{
_isDdeStarted = true;
this.Trader.StartDde();
}
private void StopDde()
{
this.Trader.StopDde();
_isDdeStarted = false;
}
При старте StartDde() выдается исключение.
Помогите пожалуйста советом!