typeSendCommand SendCommand =
reinterpret_cast<typeSendCommand>(GetProcAddress(hm,«SendCommand»));
if (!SendCommand) {
printf("\«SendCommand\» not found (0x%X)\n", GetLastError());
return -1;
}
else {
BYTE* ss = SendCommand(reinterpret_cast<BYTE*>(
"<command id='connect'>"
"<login>KOKS</login><password>koks</password>"
"<host>192.168.15.15</host><port>3901</port>"
"<logsdir>.\\LOGS\\</logsdir><loglevel>0</loglevel></command>"));
std::cout<<reinterpret_cast<const char*>(ss);
FreeMemory(ss);
Sleep(10000);
ss = SendCommand(reinterpret_cast<BYTE*>("<command id='subscribe'>"
"<alltrades><secid>304</secid></alltrades>" //идентификаторы взял просто для примера
"<quotations><secid>304</secid></quotations>" //в реально кода надо ориентировать на то,
"<quotes><secid>304</secid></quotes>" //что присылвает сервер
"</command>"));
std::cout<<reinterpret_cast<const char*>(ss);
FreeMemory(ss);
Sleep(1000);
ss = SendCommand(reinterpret_cast<BYTE*>(
"<command id='disconnect'/>"));
std::cout<<reinterpret_cast<char*>(ss);
FreeMemory(ss);
}
try {
FreeLibrary(hm);
}
catch (...) {
std::cout<<«Fail in FreeLibrary»;
}
}
int err = GetLastError();
xmlfile<<"</root>";
S&P 500: Точка кипения — включатся ли быки в игру у критической поддержки?
Ключевой фондовый индекс S&P 500 завершил торговую неделю мощным падением, протестировав и закрывшись в непосредственной близости от важного уровня поддержки 6509. Поход ниже этой горизонтали...
Средние доходности облигаций в зависимости от кредитного рейтинга. От B- до AA+
👉 Наш канал в MAX 👈
👉 Чат Иволги в MAX 👈
Средние доходности облигаций в зависимости от рейтинга (бледные столбцы — доходности без сглаживания). И как они изменились за неделю....
Дублирование портфеля в OsEngine: настройка копитрейдинга для Т-Инвестиций
В модуль копитрейдинга OsEngine был добавлен функционал дублирования позиций в портфеле в другой портфель. Копирование позиций, как и раньше, происходит путём отслеживания их у робота, только...
ЛУКОЙЛ: капитал за год упал на 3 триллиона рублей - списали иностранные активы, но все ли так плохо? Ушла эпоха, разбираемся вместе
ЛУКОЙЛ отчитался по МСФО — долгожданный отчет, все ждали сюрприза после SDN санкций (будут ли списывать активы и увидим ли убыток)
Увидели!
Как всегда — дьявол в мелочах, но...
Егор Кожемякин, И потом что значит жить стало лучше? Кому? За то, что не стало очередей за продуктами, конечно спасибо. Большой прогресс. А за то, что медицина и ЖКХ развалены, кому спасибо. Я ждал...
Рейтинговое агентство НКР сообщает, что в связи с раскрытием ПАО «ЕвроТранс» 19.03.2026 г. информации о техническом сбое, произошедшем при осуществлении платежей по выпуску «народных» облигаций, НКР о...
S&P щупает октябрьский лой. Шоу на рынках, вполне возможно, стартует уже завтра. Блогеры в своём репертуаре: тарят на зарплаты «дивидендные акции» и бравурно сыпят скринами портфелей — сколько «зарабо...
Егор Кожемякин, я бы вообще никому ни нефть ни газ не продавал — «партнеры» все кругом хитрозадые и лживые, но долгии годы сидения на нефтегазовой игле не позволяют с неё соскочить…
S&P 500: Точка кипения — включатся ли быки в игру у критической поддержки? Ключевой фондовый индекс S&P 500 завершил торговую неделю мощным падением, протестировав и закрывшись в непосредственной ...
Толстый Джек, в 2014 юань стоил 5 рублей сейчас 12. Операционные результаты упали на 30% с тех пор. Простая арифметика 28,72/12*5 =8,1 т.е. текущие 28 это 8,1 в ценах 2014 года. а в 2016 году средн...
Трамп: Теперь, после гибели Ирана, главным врагом Америки является радикально-левая, крайне некомпетентная Демократическая партия «Теперь, после гибели Ирана, главным врагом Америки является радикальн...
#include <iostream>
#include <fstream>
#define TACCESS_API __declspec(dllimport)
typedef bool (WINAPI *tcallback)(BYTE* pData);
typedef BYTE* (WINAPI *typeSendCommand)(BYTE* pData);
typedef bool (WINAPI *typeFreeMemory)(BYTE* pData);
typedef bool (WINAPI *typeSetCallback)(tcallback pCallback);
std::ofstream xmlfile;
typeFreeMemory FreeMemory;
bool CALLBACK acceptor(BYTE *pData)
{
xmlfile<<pData<<std::endl;
FreeMemory(pData);
return true;
}
int main(int argc, char* argv[]) {
setlocale(LC_CTYPE, "");
std::cout<<«Statring!»<<std::endl;
xmlfile.open(«test.xml»);
xmlfile<<"<?xml version='1.0' encoding='UTF-8'?>";
xmlfile<<"<root>";
HMODULE hm = LoadLibrary(«Debug\\txmlconnector.dll»);
if (hm) {
typeSetCallback SetCallback =
reinterpret_cast<typeSetCallback>(GetProcAddress(hm, «SetCallback»));
FreeMemory =
reinterpret_cast<typeFreeMemory>(GetProcAddress(hm, «FreeMemory»));
SetCallback(acceptor);
typeSendCommand SendCommand =
reinterpret_cast<typeSendCommand>(GetProcAddress(hm,«SendCommand»));
if (!SendCommand) {
printf("\«SendCommand\» not found (0x%X)\n", GetLastError());
return -1;
}
else {
BYTE* ss = SendCommand(reinterpret_cast<BYTE*>(
"<command id='connect'>"
"<login>KOKS</login><password>koks</password>"
"<host>192.168.15.15</host><port>3901</port>"
"<logsdir>.\\LOGS\\</logsdir><loglevel>0</loglevel></command>"));
std::cout<<reinterpret_cast<const char*>(ss);
FreeMemory(ss);
Sleep(10000);
ss = SendCommand(reinterpret_cast<BYTE*>("<command id='subscribe'>"
"<alltrades><secid>304</secid></alltrades>" //идентификаторы взял просто для примера
"<quotations><secid>304</secid></quotations>" //в реально кода надо ориентировать на то,
"<quotes><secid>304</secid></quotes>" //что присылвает сервер
"</command>"));
std::cout<<reinterpret_cast<const char*>(ss);
FreeMemory(ss);
Sleep(1000);
ss = SendCommand(reinterpret_cast<BYTE*>(
"<command id='disconnect'/>"));
std::cout<<reinterpret_cast<char*>(ss);
FreeMemory(ss);
}
try {
FreeLibrary(hm);
}
catch (...) {
std::cout<<«Fail in FreeLibrary»;
}
}
int err = GetLastError();
xmlfile<<"</root>";
std::cout<<"\nEnded...\n";
char c;
std::cin>>c;
return 0;
}