Не удалось получить фабрику класса COM компонента
Atom Ответить
06.09.2011


Доброго времени, давно здесь не появлялся, тем времени s# неплохо развился, теперь готов к его постижению, вместе с с#
Пытаюсь подключиться к SmartTrade, как указано в примерах и хелпах, при компиляции получаю :
Не удалось получить фабрику класса COM для компонента с CLSID {DEA17435-B62C-4F13-BEC8-08EBD203B281} из-за следующей ошибки: 80040154 Класс не зарегистрирован (Исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

показывает на trader.Connect()
Надеюсь на вашу помощь, заранее спасибо :)

Теги:


Спасибо:




6 Ответов
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 06.09.2011
Ответить


iRoot Перейти
Надеюсь на вашу помощь, заранее спасибо :)


А вы СмартКом установили?
Спасибо:

iRoot

Фотография
Дата: 06.09.2011
Ответить


да, smarttrade_5.2_COM

upd: поставил смартком2, исключение не вылетает, но и соедениться пока не удалось, завтра надеюсь разберусь, спасибо за подсказку.
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 06.09.2011
Ответить


iRoot Перейти
да, smarttrade_5.2_COM


Я о таком даже не слышал. S# работает только через SmartCOM.
Спасибо:

Alexander

Фотография
Дата: 06.09.2011
Ответить


Mikhail Sukhov Перейти
iRoot Перейти
да, smarttrade_5.2_COM


Я о таком даже не слышал. S# работает только через SmartCOM.


Это старьё - терминал SmartTrade со встроенной COM библиотекой :)
Спасибо:

iRoot

Фотография
Дата: 07.09.2011
Ответить


ага, поставил смартком2, код такой:
Цитата:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

using Ecng.Collections;
using Ecng.Common;

using StockSharp.BusinessEntities;
using StockSharp.Smart;
using StockSharp.Algo;


namespace ConsoleApplication8
{
class Program
{
static void Main(string[] args)
{

string login = "логин";
string password = "пароль";

using (var waitHandle = new AutoResetEvent(false))
{
using (var trader = new SmartTrader(login, password))
{
// подписываемся на событие успешного подключения
// все действия необходимо производить только после подключения
trader.Connected += () =>
{
Console.WriteLine("Подключение было произведено успешно.");

// извещаем об успешном соединени
waitHandle.Set();
};

Console.WriteLine("Производим подключение...");

trader.Connect();

// дожидаемся события об успешном соединении
waitHandle.WaitOne();
}
}

}
}
}


собственно вижу "Производим подключение" и все, так и висим.

p.s. тестовый счет в смарте...
Автор топика
Спасибо:

iRoot

Фотография
Дата: 07.09.2011
Ответить


Разобрался, так как тестирую все на демо счете, соответсвенно IP адрес нужно указать, сделал так:
Цитата:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

using Ecng.Collections;
using Ecng.Common;

using StockSharp.BusinessEntities;
using StockSharp.Smart;
using StockSharp.Algo;


namespace ConsoleApplication8
{
class Program
{
static void Main(string[] args)
{

string login = "логин";
string password = "пароль";
string ipAddress = "89.175.35.229";
System.Net.IPAddress address = System.Net.IPAddress.Parse(ipAddress);

using (var waitHandle = new AutoResetEvent(false))
{
using (var trader = new SmartTrader(login, password,address))
{
// подписываемся на событие успешного подключения
// все действия необходимо производить только после подключения
trader.Connected += () =>
{
Console.WriteLine("Подключение было произведено успешно.");

// извещаем об успешном соединени
waitHandle.Set();
};

Console.WriteLine("Производим подключение...");

trader.Connect();

// дожидаемся события об успешном соединении
waitHandle.WaitOne();
}
}
Console.ReadLine();

}
}
}



Спасибо за помощь.
Думаю вопросов еще будет масса :)
Автор топика
Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy