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

Альтернативный коннектор
Atom
11/4/2011
Char


Судя по количеству просмотров темы про 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 //Эта либа умеет нативно грузить в память либы и возвращать указатели на функции в либе. Нативно - всмысле сама аллочит кучу, грузит и дергает длл_мэйн, и если что не так она пишет в системный лог. Зачем сделано так а не через системные вызовы мне непонятно

NativeSmart.rar 518 KB (509)

Tags:


Thanks: Mikhail Sukhov


Mikhail Sukhov

Avatar
Date: 11/5/2011
Reply


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

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

Thanks:

Char

Avatar
Date: 11/5/2011
Reply


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

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

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

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

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

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

Thanks:


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

loading
clippy