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

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


Доброго времени, давно здесь не появлялся, тем времени s# неплохо развился, теперь готов к его постижению, вместе с с# Пытаюсь подключиться к SmartTrade, как указано в примерах и хелпах, при компиляции получаю : Не удалось получить фабрику класса COM для компонента с CLSID из-за следующей ошибки: 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, код такой:

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 адрес нужно указать, сделал так:

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