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

Не удалось получить фабрику класса COM компонента
Atom
9/6/2011
iRoot


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

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

Tags:


Thanks:


Mikhail Sukhov

Avatar
Date: 9/6/2011
Reply


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


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

iRoot

Avatar
Date: 9/6/2011
Reply


да, smarttrade_5.2_COM

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

Mikhail Sukhov

Avatar
Date: 9/6/2011
Reply


iRoot
да, smarttrade_5.2_COM


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

Alexander

Avatar
Date: 9/6/2011
Reply


Mikhail Sukhov
iRoot
да, smarttrade_5.2_COM


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


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

iRoot

Avatar
Date: 9/7/2011
Reply


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


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. тестовый счет в смарте...
Thanks:

iRoot

Avatar
Date: 9/7/2011
Reply


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


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();

}
}
}



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


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy