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>";
Друзья, привет!
🔥 Пока вы продолжаете следить за ценами на сырье и валютой — наш кредитный рейтинг возвращается к исходному стабильному прогнозу.
⚡️Рейтинговое агентство НКР изменило...
Финансовый маркетплейс Бробанк признал мобильное приложение Займера лучшим среди МФО в AppStore в 2026 году. 🔎 Всего представители сервиса проанализировали 31 приложение МФО на основе оценок...
Почти половина россиян испытывает стресс при подготовке к свиданиям
Пятничный пост от нас. Дейтинг сервис Мамба и аналитики платформы психологической поддержки и управления состоянием «Просебя» (входит в Группу Ренессанс Страхование) провели опрос* среди россиян...
ЛУКОЙЛ: капитал за год упал на 3 триллиона рублей - списали иностранные активы, но все ли так плохо? Ушла эпоха, разбираемся вместе
ЛУКОЙЛ отчитался по МСФО — долгожданный отчет, все ждали сюрприза после SDN санкций (будут ли списывать активы и увидим ли убыток)
Увидели!
Как всегда — дьявол в мелочах, но...
С таким подходом, на рынке могут остаться одни пастухи, надо как то подкармливать свою живность, (овец, быков, медведей, лосей) чтоб не разбежались, если нас не будет начнёте жрать друг друга и рынку ...
Николай Иванов, НУ, не везде это.
К примеру в соседнем городе от меня сестра живет… батареи чуть теплятся… тоже чугунные .
Чугунные батареи самые лучшие. Срок их эксплуатации 30-35 лет.Тепло...
fusy, именно вся проблема и опасность для компании в отсутствие возможности рефинансировать долги, а в этом году нужно много денег, я в ауте как они смогли на пустом месте с хорошей отчётностью, по...
Американские индексы показали снижение четвёртую неделю подряд В пятницу американские фондовые рынки продолжили четвёртую неделю падения, а все основные индексы завершили торги в минусе. Индекс Nasdaq...
— … Ага, 4-е место в ЕС по потреблению ..!!?? Россия занимала в 2025 году. Вот она… измена…! ЦБ РФ ..!!! и… банкротство… в реальном секторе экономики ..!!
… только не Спрашивайте почему Рубль — Пада...
#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;
}