Блог им. SHLAK

С# пример TRANSAQ Connector, есть на сайте ФИНАМА

Друзья есть ли пример у кого нибудь на С++
С# пример  TRANSAQ Connector, есть на сайте ФИНАМА


  • Ключевые слова:
  • Transaq
631 | ★1
4 комментария
#include <windows.h>
#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;
}
avatar
Естли будут вопросы обращайся!!!
avatar

Читайте на SMART-LAB:
Фото
Станет ли Венесуэла новым игроком на рынке металлов?
🛢Нефть — важнейший ресурс этой страны, однако ее минеральный потенциал этим не ограничивается. По оценкам геологов, в Венесуэле есть: ⚫️...
Фото
Календарь первички ВДО и розничных облигаций (Главснаб купон 26,55% | РДВ Технолоджи купон 25% | ТЛК купон 24% | Бизнес Альянс купон 22%)
🔸ГЛАВСНАБ БО-02  ( BB-(RU) , 200 млн руб., ставка купона 26,55% на весь срок обращения, YTM 30,0%, дюрация 2,5 года) размещен на 35%....
Фото
ПАО «АПРИ» объявляет сбор заявок на новый выпуск облигаций серии БО-002Р-13
ПАО «АПРИ» объявляет сбор заявок на новый выпуск облигаций серии БО-002Р-13 ПАО «АПРИ» сообщает об открытии книги заявок на...
Фото
Ставропольэнергосбыт. Надбавки на 26г. установлены. Изменение целевой цены
Региональная тарифная комиссия Ставропольского края опубликовала постановление №71/2 от 26.12.2025г. об установлении сбытовой надбавки...

теги блога Boris Litvinov

....все тэги



UPDONW
Новый дизайн