← Zurück

Альтернативный коннектор

Судя по количеству просмотров темы про ITINConnection ( http://www.itinvest.ru/forum/index.php?showforum=26 ) Вопрос актуален. В аттаче простейший пример использования, думаю у тех кому надо не составит проблемы просмотреть список публичных методов коннектора.

Использован SmartX 2.3

требования: х86

инициализировать(соответсвенно ITINConnection в референсы): _itConn = Connection.init("SMARTX/V.2.3.548.709"); // Так будет работать // _itConn = new Connection(); // так нельзя получите ошибку на коннекте.

Зависимости: loader_lib.dll //Эта либа умеет нативно грузить в память либы и возвращать указатели на функции в либе. Нативно - всмысле сама аллочит кучу, грузит и дергает длл_мэйн, и если что не так она пишет в системный лог. Зачем сделано так а не через системные вызовы мне непонятно

War dieses Thema hilfreich?

Thema teilen

Kommentare (2)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Mikhail Sukhov
Mikhail Sukhov

Char: Судя по количеству просмотров темы про ITINConnection ( http://www.itinvest.ru/forum/index.php?showforum=26 ) Вопрос актуален.

Актуален - это да. Только вот не через эту библиотеку. Я ее смотрел пол года назад через Reflector. Был удивлен обилием локов внутри нее + обработкой ошибок через возникающий MessageBox. Лично мне тогда показалось это сырой альфа версией, которую использовать для реальной торговли просто опасно. Плюс ко всему, я так и не понял, чем это решение лучше SmartCOM. Тот же x86, то же выделение памяти, которое не освободить без перезагрузки робота, если что-то не так... Кроме отсутствия установки SmartCOM я плюсов не нашел.

Char
Char Autor

Ну перед её использованием я её тоже изучал. Неадекватных локов не обнаружил, все они происходят в событиях подписки\отписки

Эксепшены в ней генерятся следующим образом: SmartAssembly.SmartExceptionsCore.StackFrameHelper.CreateExceptionN(exception, objArray); Где в exception.Data по ключу, указаному в ресурсах, дописывается LinkedList<object>; с описаниием ошибки по мнению смарт ассембли =) (имхо удобно) после чего производится throw;

иногда эксепшены применают вот такой вид. throw new Exception(SmartAssembly.StringsEncoding.Strings.Get(8727));

и реже throw new ITINConnectionException(...);

Как минимум плюс в возможности одновременной работы нескольких экземпляров программ (например гидра и робот / робот, и параллельно можно что-то отлаживать). А про память скажу так - надо опросить активных пользователей SmartX как у них приложение ведет себя.

з.ы. глянул тут ITrader может что и напишу.