#undef UNICODE
#define _WIN32_WINNT 0x501
#include < windows.h >
#include < fstream>
#include < winsock2.h >
#include < ws2tcpip.h >
#include < stdlib.h >
#include < stdio.h >
#include < iostream>
#include < string>
#include < map>
#include < vector>
#include < ctime>
#include < tchar.h >
#include < string.h >
#include < errno.h >
#pragma comment ( lib, "Ws2_32.lib" )
#pragma warning( disable: 4996 )
#define DEFAULT_BUFLEN 512
#define DEFAULT_PORT "5000"
int market( ) ;
using namespace std;
bool bAtivo = false ;
bool bMarketConnected = false ;
typedef struct
{
wchar_t * ticker;
wchar_t * bolsa;
int feed;
} TAssetID;
typedef void ( __stdcall * TStateCallback) ( int nResult, int result) ;
typedef void ( __stdcall * TNewTradeCallback) ( TAssetID assetId, wchar_t* date, float price, float vol, int qtd, int buyAgent, int sellAgent, int tradeType) ;
typedef void ( __stdcall * TNewDailyCallback) ( TAssetID TAssetIDRec, wchar_t* date, float sOpen, float sHigh, float sLow, float sClose, float sVol, float sAjuste, float sMaxLimit, float sMinLimit, int sVolBuyer, int sVolSeller, int nQtd, int nNegocios, int nContratosOpen, int nQtdBuyer, int nQtdSeller, int nNegBuyer, int nNegSeller) ;
typedef void ( __stdcall * TNewHistoryCallback) ( TAssetID assetId, wchar_t* date, float price, float vol, int qtd, int buyAgent, int sellAgent, int tradeType) ;
typedef void ( __stdcall * TProgressCallBack) ( TAssetID assetId, int nProgress) ;
typedef void ( __stdcall * TNewTinyBookCallBack) ( TAssetID assetId, float price, int qtd, int side) ;
extern "C" {
typedef signed char ( __stdcall * InitializeMarket) ( const wchar_t * activationKey,
TStateCallback stateCallback,
TNewTradeCallback newTradeCallback,
TNewDailyCallback newDailyCallback,
TNewHistoryCallback newHistoryCallback,
TProgressCallBack progressCallBack,
TNewTinyBookCallBack newTinyBookCallBack) ;
typedef signed char ( __stdcall * Finalize) ( ) ;
typedef signed char ( __stdcall * SubscribeTicker) ( const wchar_t * ticker, const wchar_t * bolsa) ;
typedef signed char ( __stdcall * UnsubscribeTicker) ( const wchar_t * ticker, const wchar_t * bolsa) ;
typedef wchar_t* ( __stdcall * GetAgentNameByID) ( int nID) ;
typedef wchar_t* ( __stdcall * GetAgentShortNameByID) ( int nID) ;
typedef signed char ( __stdcall * GetHistoryTradesInInterval) ( const wchar_t * pwcTicker, const wchar_t * bolsa, wchar_t* dateStart, wchar_t* dateTimeStart) ;
}
const signed char NL_OK = 0 ; // OK
//const signed char NL_LOGIN_INVALID = [1..4]; // LOGIN INVALID
const signed char NL_ERR_INIT = 80 ; // Not initialized
const signed char NL_ERR_INVALID_ARGS = 90 ; // Invalid arguments
const signed char NL_ERR_INTERNAL_ERROR = 100 ; // Internal error
bool g_Activated = false ;
//////////////////////////////////////////////////////////////////////////////
// DLL Functions
InitializeMarket g_initialize;
Finalize g_finalize;
SubscribeTicker g_subscribe;
UnsubscribeTicker g_unsubscribe;
GetAgentNameByID g_getAgentName;
GetAgentShortNameByID g_getAgentShortName;
// Callbacks
void __stdcall newTradeCallback( TAssetID assetId, wchar_t* date, float price, float vol, int qtd, int buyAgent, int sellAgent, int tradeType) { }
void __stdcall newDailyCallback( TAssetID assetId, wchar_t* date, float sOpen, float sHigh, float sLow, float sClose, float sVol, float sAjuste, float sMaxLimit, float sMinLimit, int sVolBuyer, int sVolSeller, int nQtd, int nNegocios, int nContratosOpen, int nQtdBuyer, int nQtdSeller, int nNegBuyer, int nNegSeller) { }
void __stdcall newTinyBookCallBack( TAssetID assetId, float proce, int qtd, int side) { }
void __stdcall progressCallBack( TAssetID assetId, int nProgress) { }
void __stdcall newHistoryCallback( TAssetID assetId, wchar_t* date, float price, float vol, int qtd, int buyAgent, int sellAgent, int tradeType) { }
void __stdcall stateCallback( int nConnStateType, int result)
{
wstring novadata;
std:: time_t t = std:: time( 0 ) ;
std:: tm* now = std:: localtime( & t) ;
novadata = std:: to_wstring( now-> tm_hour) .c_str ( ) ;
novadata += std:: to_wstring( now-> tm_min) .c_str ( ) ;
novadata += std:: to_wstring( now-> tm_sec) .c_str ( ) ;
const wchar_t* ledata = novadata.c_str ( ) ;
if ( nConnStateType == 0 ) { // notificacoes de login
if ( result == 0 ) {
cout << ledata << "(0-0) Login: Conectado." << endl;
}
if ( result == 1 ) {
cout << ledata << "(0-1) Login: Login invalido." << endl;
}
if ( result == 2 ) {
cout << ledata << "(0-2) Login: Senha invalida" << endl;
}
if ( result == 3 ) {
cout << ledata << "(0-3) Login: Senha bloqueada" << endl;
}
if ( result == 4 ) {
cout << ledata << "(0-4) Login: Senha expirada" << endl;
}
if ( result == 200 ) {
cout << ledata << "(0-200) Login: Erro desconhecido" << endl;
}
}
if ( nConnStateType == 1 ) { // notificacoes de broker
if ( result == 0 ) {
cout << ledata << "(1-0) Broker: Desconectado." << endl;
}
if ( result == 1 ) {
cout << ledata << "(1-1) Broker: Connectando" << endl;
}
if ( result == 2 ) {
cout << ledata << "(1-2) Broker: Conectado" << endl;
}
if ( result == 3 ) {
cout << ledata << "(1-3) Broker: Desconectado" << endl;
}
if ( result == 4 ) {
cout << ledata << "(1-4) Broker: Conectando" << endl;
}
if ( result == 5 ) {
cout << ledata << "(1-5) Broker: Conectado" << endl;
}
}
if ( nConnStateType == 2 ) { // notificacoes de login no Market
if ( result == 4 ) {
cout << ledata << "(2-4) State: Conectado ao Profit" << endl;
//Sleep(3000);
bMarketConnected = true ;
} else {
cout << ledata << "(2-" << result << ") State: Desconectado." << endl;
bMarketConnected = false ;
}
}
if ( nConnStateType == 3 ) { // notificacoes de login no Market
if ( result == 0 ) {
cout << ledata << "(3-0) Atividade: Valida." << endl;
bAtivo = true ;
} else {
cout << ledata << "(3-" << result << ") Atividade: Invalida." << endl;
bAtivo = false ;
}
}
if ( ( nConnStateType == 3 || nConnStateType == 2 ) && ( bAtivo && bMarketConnected) )
{
startToSee( ) ;
}
}
int wait_for_esc( )
{
bool exit = false ;
cout << "press esc to exit! " << endl;
while ( exit == false ) {
if ( GetAsyncKeyState( VK_ESCAPE) )
{
exit = true ;
}
}
return 0 ;
}
int market( )
{
HINSTANCE hdl = LoadLibraryA( "ProfitDLL.dll" ) ;
if ( hdl)
{
g_initialize = reinterpret_cast< InitializeMarket> ( GetProcAddress( hdl, "InitializeMarket" ) ) ;
g_finalize = reinterpret_cast< Finalize> ( GetProcAddress( hdl, "DLLFinalize" ) ) ;
g_subscribe = reinterpret_cast< SubscribeTicker> ( GetProcAddress( hdl, "SubscribeTicker" ) ) ;
g_unsubscribe = reinterpret_cast< UnsubscribeTicker> ( GetProcAddress( hdl, "UnsubscribeTicker" ) ) ;
g_getAgentName = reinterpret_cast< GetAgentNameByID> ( GetProcAddress( hdl, "GetAgentNameByID" ) ) ;
g_getAgentShortName = reinterpret_cast< GetAgentShortNameByID> ( GetProcAddress( hdl, "GetAgentShortNameByID" ) ) ;
if ( g_initialize && g_finalize && g_subscribe && g_unsubscribe && g_getAgentName && g_getAgentShortName)
{
cout << "Type your activation code: " ;
string Code = "123151321351315135131531321" ;
cin >> Code;
const wchar_t* key;
wstring keystr = std:: wstring( Code.begin ( ) , Code.end ( ) ) ;
key = keystr.c_str ( ) ;
short c = g_initialize( key, & stateCallback, & newTradeCallback, & newDailyCallback, & newHistoryCallback, & progressCallBack, & newTinyBookCallBack) ;
if ( c != NL_OK)
{
cout << "Error initializing!" << c << endl;
system( "pause" ) ;
return 0 ;
}
}
else
cout << "Functions not found." << endl;
}
else
{
cout << "A DLL nao pode ser carregada.\n " << endl;
}
return 0 ;
}
int main( )
{
//cout << "Aguardando conexao cliente." << endl;
//server();
market( ) ;
wait_for_esc( ) ;
}
I3VuZGVmIFVOSUNPREUKCiNkZWZpbmUgX1dJTjMyX1dJTk5UIDB4NTAxCgojaW5jbHVkZSA8d2luZG93cy5oPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPHdpbnNvY2syLmg+CiNpbmNsdWRlIDx3czJ0Y3BpcC5oPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxjdGltZT4KI2luY2x1ZGUgPHRjaGFyLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPGVycm5vLmg+CgojcHJhZ21hIGNvbW1lbnQgKGxpYiwgIldzMl8zMi5saWIiKQojcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0OTk2KQoKI2RlZmluZSBERUZBVUxUX0JVRkxFTiA1MTIKI2RlZmluZSBERUZBVUxUX1BPUlQgIjUwMDAiCgppbnQgbWFya2V0KCk7CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpib29sIGJBdGl2byA9IGZhbHNlOwpib29sIGJNYXJrZXRDb25uZWN0ZWQgPSBmYWxzZTsKCnR5cGVkZWYgc3RydWN0CnsKCXdjaGFyX3QgKiB0aWNrZXI7Cgl3Y2hhcl90ICogYm9sc2E7CglpbnQgZmVlZDsKfSBUQXNzZXRJRDsKCgp0eXBlZGVmIHZvaWQgKF9fc3RkY2FsbCAqVFN0YXRlQ2FsbGJhY2spKGludCBuUmVzdWx0LCBpbnQgcmVzdWx0KTsKCgp0eXBlZGVmIHZvaWQgKF9fc3RkY2FsbCAqVE5ld1RyYWRlQ2FsbGJhY2spKFRBc3NldElEIGFzc2V0SWQsIHdjaGFyX3QqIGRhdGUsIGZsb2F0IHByaWNlLCBmbG9hdCB2b2wsIGludCBxdGQsIGludCBidXlBZ2VudCwgaW50IHNlbGxBZ2VudCwgaW50IHRyYWRlVHlwZSk7CnR5cGVkZWYgdm9pZCAoX19zdGRjYWxsICpUTmV3RGFpbHlDYWxsYmFjaykoVEFzc2V0SUQgVEFzc2V0SURSZWMsIHdjaGFyX3QqIGRhdGUsIGZsb2F0IHNPcGVuLCBmbG9hdCBzSGlnaCwgZmxvYXQgc0xvdywgZmxvYXQgc0Nsb3NlLCBmbG9hdCBzVm9sLCBmbG9hdCBzQWp1c3RlLCBmbG9hdCBzTWF4TGltaXQsIGZsb2F0IHNNaW5MaW1pdCwgaW50IHNWb2xCdXllciwgaW50IHNWb2xTZWxsZXIsIGludCBuUXRkLCBpbnQgbk5lZ29jaW9zLCBpbnQgbkNvbnRyYXRvc09wZW4sIGludCBuUXRkQnV5ZXIsIGludCBuUXRkU2VsbGVyLCBpbnQgbk5lZ0J1eWVyLCBpbnQgbk5lZ1NlbGxlcik7CnR5cGVkZWYgdm9pZChfX3N0ZGNhbGwgKlROZXdIaXN0b3J5Q2FsbGJhY2spKFRBc3NldElEIGFzc2V0SWQsIHdjaGFyX3QqIGRhdGUsIGZsb2F0IHByaWNlLCBmbG9hdCB2b2wsIGludCBxdGQsIGludCBidXlBZ2VudCwgaW50IHNlbGxBZ2VudCwgaW50IHRyYWRlVHlwZSk7CnR5cGVkZWYgdm9pZChfX3N0ZGNhbGwgKlRQcm9ncmVzc0NhbGxCYWNrKShUQXNzZXRJRCBhc3NldElkLCBpbnQgblByb2dyZXNzKTsKdHlwZWRlZiB2b2lkKF9fc3RkY2FsbCAqVE5ld1RpbnlCb29rQ2FsbEJhY2spKFRBc3NldElEIGFzc2V0SWQsIGZsb2F0IHByaWNlLCBpbnQgcXRkLCBpbnQgc2lkZSk7CgoKZXh0ZXJuICJDIiB7Cgl0eXBlZGVmIHNpZ25lZCBjaGFyIChfX3N0ZGNhbGwgKkluaXRpYWxpemVNYXJrZXQpKGNvbnN0IHdjaGFyX3QgKmFjdGl2YXRpb25LZXksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRTdGF0ZUNhbGxiYWNrIHN0YXRlQ2FsbGJhY2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFROZXdUcmFkZUNhbGxiYWNrIG5ld1RyYWRlQ2FsbGJhY2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFROZXdEYWlseUNhbGxiYWNrIG5ld0RhaWx5Q2FsbGJhY2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFROZXdIaXN0b3J5Q2FsbGJhY2sgbmV3SGlzdG9yeUNhbGxiYWNrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUHJvZ3Jlc3NDYWxsQmFjayBwcm9ncmVzc0NhbGxCYWNrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUTmV3VGlueUJvb2tDYWxsQmFjayBuZXdUaW55Qm9va0NhbGxCYWNrKTsKCXR5cGVkZWYgc2lnbmVkIGNoYXIgKF9fc3RkY2FsbCAqRmluYWxpemUpKCk7Cgl0eXBlZGVmIHNpZ25lZCBjaGFyIChfX3N0ZGNhbGwgKlN1YnNjcmliZVRpY2tlcikoY29uc3Qgd2NoYXJfdCAqdGlja2VyLCBjb25zdCB3Y2hhcl90ICpib2xzYSk7Cgl0eXBlZGVmIHNpZ25lZCBjaGFyIChfX3N0ZGNhbGwgKlVuc3Vic2NyaWJlVGlja2VyKShjb25zdCB3Y2hhcl90ICp0aWNrZXIsIGNvbnN0IHdjaGFyX3QgKmJvbHNhKTsKCXR5cGVkZWYgd2NoYXJfdCogKF9fc3RkY2FsbCAqR2V0QWdlbnROYW1lQnlJRCkoaW50IG5JRCk7Cgl0eXBlZGVmIHdjaGFyX3QqIChfX3N0ZGNhbGwgKkdldEFnZW50U2hvcnROYW1lQnlJRCkoaW50IG5JRCk7Cgl0eXBlZGVmIHNpZ25lZCBjaGFyKF9fc3RkY2FsbCAqR2V0SGlzdG9yeVRyYWRlc0luSW50ZXJ2YWwpKGNvbnN0IHdjaGFyX3QgKnB3Y1RpY2tlciwgY29uc3Qgd2NoYXJfdCAqYm9sc2EsICB3Y2hhcl90KiBkYXRlU3RhcnQsIHdjaGFyX3QqIGRhdGVUaW1lU3RhcnQpOwp9CgoKY29uc3Qgc2lnbmVkIGNoYXIgTkxfT0sgPSAwOyAgICAgLy8gT0sKLy9jb25zdCBzaWduZWQgY2hhciBOTF9MT0dJTl9JTlZBTElEID0gWzEuLjRdOyAgLy8gTE9HSU4gSU5WQUxJRApjb25zdCBzaWduZWQgY2hhciBOTF9FUlJfSU5JVCA9IDgwOyAgICAgLy8gTm90IGluaXRpYWxpemVkCmNvbnN0IHNpZ25lZCBjaGFyIE5MX0VSUl9JTlZBTElEX0FSR1MgPSA5MDsgICAgIC8vIEludmFsaWQgYXJndW1lbnRzCmNvbnN0IHNpZ25lZCBjaGFyIE5MX0VSUl9JTlRFUk5BTF9FUlJPUiA9IDEwMDsgICAgIC8vIEludGVybmFsIGVycm9yCgpib29sIGdfQWN0aXZhdGVkID0gZmFsc2U7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gRExMIEZ1bmN0aW9ucwpJbml0aWFsaXplTWFya2V0IGdfaW5pdGlhbGl6ZTsKRmluYWxpemUgZ19maW5hbGl6ZTsKU3Vic2NyaWJlVGlja2VyIGdfc3Vic2NyaWJlOwpVbnN1YnNjcmliZVRpY2tlciBnX3Vuc3Vic2NyaWJlOwpHZXRBZ2VudE5hbWVCeUlEIGdfZ2V0QWdlbnROYW1lOwpHZXRBZ2VudFNob3J0TmFtZUJ5SUQgZ19nZXRBZ2VudFNob3J0TmFtZTsKCi8vIENhbGxiYWNrcwp2b2lkIF9fc3RkY2FsbCBuZXdUcmFkZUNhbGxiYWNrKFRBc3NldElEIGFzc2V0SWQsIHdjaGFyX3QqIGRhdGUsIGZsb2F0IHByaWNlLCBmbG9hdCB2b2wsIGludCBxdGQsIGludCBidXlBZ2VudCwgaW50IHNlbGxBZ2VudCwgaW50IHRyYWRlVHlwZSl7fQp2b2lkIF9fc3RkY2FsbCBuZXdEYWlseUNhbGxiYWNrKFRBc3NldElEIGFzc2V0SWQsIHdjaGFyX3QqIGRhdGUsIGZsb2F0IHNPcGVuLCBmbG9hdCBzSGlnaCwgZmxvYXQgc0xvdywgZmxvYXQgc0Nsb3NlLCBmbG9hdCBzVm9sLCBmbG9hdCBzQWp1c3RlLCBmbG9hdCBzTWF4TGltaXQsIGZsb2F0IHNNaW5MaW1pdCwgaW50IHNWb2xCdXllciwgaW50IHNWb2xTZWxsZXIsIGludCBuUXRkLCBpbnQgbk5lZ29jaW9zLCBpbnQgbkNvbnRyYXRvc09wZW4sIGludCBuUXRkQnV5ZXIsIGludCBuUXRkU2VsbGVyLCBpbnQgbk5lZ0J1eWVyLCBpbnQgbk5lZ1NlbGxlcil7fQp2b2lkIF9fc3RkY2FsbCBuZXdUaW55Qm9va0NhbGxCYWNrKFRBc3NldElEIGFzc2V0SWQsIGZsb2F0IHByb2NlLCBpbnQgcXRkLCBpbnQgc2lkZSl7fQp2b2lkIF9fc3RkY2FsbCBwcm9ncmVzc0NhbGxCYWNrKFRBc3NldElEIGFzc2V0SWQsIGludCBuUHJvZ3Jlc3Mpe30Kdm9pZCBfX3N0ZGNhbGwgbmV3SGlzdG9yeUNhbGxiYWNrKFRBc3NldElEIGFzc2V0SWQsIHdjaGFyX3QqIGRhdGUsIGZsb2F0IHByaWNlLCBmbG9hdCB2b2wsIGludCBxdGQsIGludCBidXlBZ2VudCwgaW50IHNlbGxBZ2VudCwgaW50IHRyYWRlVHlwZSl7fQoKdm9pZCBfX3N0ZGNhbGwgc3RhdGVDYWxsYmFjayhpbnQgbkNvbm5TdGF0ZVR5cGUsIGludCByZXN1bHQpCnsKCXdzdHJpbmcgbm92YWRhdGE7CglzdGQ6OnRpbWVfdCB0ID0gc3RkOjp0aW1lKDApOwoJc3RkOjp0bSogbm93ID0gc3RkOjpsb2NhbHRpbWUoJnQpOwoJbm92YWRhdGEgPSBzdGQ6OnRvX3dzdHJpbmcobm93LT50bV9ob3VyKS5jX3N0cigpOwoJbm92YWRhdGEgKz0gc3RkOjp0b193c3RyaW5nKG5vdy0+dG1fbWluKS5jX3N0cigpOwoJbm92YWRhdGEgKz0gc3RkOjp0b193c3RyaW5nKG5vdy0+dG1fc2VjKS5jX3N0cigpOwoJY29uc3Qgd2NoYXJfdCogbGVkYXRhID0gbm92YWRhdGEuY19zdHIoKTsKCglpZiAobkNvbm5TdGF0ZVR5cGUgPT0gMCkgeyAvLyBub3RpZmljYWNvZXMgZGUgbG9naW4KCQlpZiAocmVzdWx0ID09IDApIHsKCQkJY291dCA8PCBsZWRhdGEgPDwgIigwLTApIExvZ2luOiBDb25lY3RhZG8uIiA8PCBlbmRsOwoJCX0KCQlpZiAocmVzdWx0ID09IDEpIHsKCQkJY291dCA8PCBsZWRhdGEgPDwgIigwLTEpIExvZ2luOiBMb2dpbiBpbnZhbGlkby4iIDw8IGVuZGw7CgkJfQoJCWlmIChyZXN1bHQgPT0gMikgewoJCQljb3V0IDw8IGxlZGF0YSA8PCAiKDAtMikgTG9naW46IFNlbmhhIGludmFsaWRhIiA8PCBlbmRsOwoJCX0KCQlpZiAocmVzdWx0ID09IDMpIHsKCQkJY291dCA8PCBsZWRhdGEgPDwgIigwLTMpIExvZ2luOiBTZW5oYSBibG9xdWVhZGEiIDw8IGVuZGw7CgkJfQoJCWlmIChyZXN1bHQgPT0gNCkgewoJCQljb3V0IDw8IGxlZGF0YSA8PCAiKDAtNCkgTG9naW46IFNlbmhhIGV4cGlyYWRhIiA8PCBlbmRsOwoJCX0KCQlpZiAocmVzdWx0ID09IDIwMCkgewoJCQljb3V0IDw8IGxlZGF0YSA8PCAiKDAtMjAwKSBMb2dpbjogRXJybyBkZXNjb25oZWNpZG8iIDw8IGVuZGw7CgkJfQoJfQoKCWlmIChuQ29ublN0YXRlVHlwZSA9PSAxKSB7IC8vIG5vdGlmaWNhY29lcyBkZSBicm9rZXIKCQlpZiAocmVzdWx0ID09IDApIHsKCQkJY291dCA8PCBsZWRhdGEgPDwgIigxLTApIEJyb2tlcjogRGVzY29uZWN0YWRvLiIgPDwgZW5kbDsKCQl9CgkJaWYgKHJlc3VsdCA9PSAxKSB7CgkJCWNvdXQgPDwgbGVkYXRhIDw8ICIoMS0xKSBCcm9rZXI6IENvbm5lY3RhbmRvIiA8PCBlbmRsOwoJCX0KCQlpZiAocmVzdWx0ID09IDIpIHsKCQkJY291dCA8PCBsZWRhdGEgPDwgIigxLTIpIEJyb2tlcjogQ29uZWN0YWRvIiA8PCBlbmRsOwoJCX0KCQlpZiAocmVzdWx0ID09IDMpIHsKCQkJY291dCA8PCBsZWRhdGEgPDwgIigxLTMpIEJyb2tlcjogRGVzY29uZWN0YWRvIiA8PCBlbmRsOwoJCX0KCQlpZiAocmVzdWx0ID09IDQpIHsKCQkJY291dCA8PCBsZWRhdGEgPDwgIigxLTQpIEJyb2tlcjogQ29uZWN0YW5kbyIgPDwgZW5kbDsKCQl9CgkJaWYgKHJlc3VsdCA9PSA1KSB7CgkJCWNvdXQgPDwgbGVkYXRhIDw8ICIoMS01KSBCcm9rZXI6IENvbmVjdGFkbyIgPDwgZW5kbDsKCQl9Cgl9CgoJaWYgKG5Db25uU3RhdGVUeXBlID09IDIpIHsgLy8gbm90aWZpY2Fjb2VzIGRlIGxvZ2luIG5vIE1hcmtldAogICAgICAgIGlmIChyZXN1bHQgPT0gNCkgewoJCQljb3V0IDw8IGxlZGF0YSA8PCAiKDItNCkgU3RhdGU6IENvbmVjdGFkbyBhbyBQcm9maXQiIDw8IGVuZGw7CgkJCS8vU2xlZXAoMzAwMCk7CgkJCWJNYXJrZXRDb25uZWN0ZWQgPSB0cnVlOwoJCX1lbHNlewogICAgICAgICAgICBjb3V0IDw8IGxlZGF0YSA8PCAiKDItIiA8PCByZXN1bHQgPDwiKSBTdGF0ZTogRGVzY29uZWN0YWRvLiIgPDwgZW5kbDsKCQkJYk1hcmtldENvbm5lY3RlZCA9IGZhbHNlOwoJCX0KCgl9CgoJaWYgKG5Db25uU3RhdGVUeXBlID09IDMpIHsgLy8gbm90aWZpY2Fjb2VzIGRlIGxvZ2luIG5vIE1hcmtldAoJCWlmIChyZXN1bHQgPT0gMCkgewoJCQljb3V0IDw8IGxlZGF0YSA8PCAiKDMtMCkgQXRpdmlkYWRlOiBWYWxpZGEuIiA8PCBlbmRsOwoJCQliQXRpdm8gPSB0cnVlOwoJCX1lbHNlewoJCQljb3V0IDw8IGxlZGF0YSA8PCAiKDMtIiA8PCByZXN1bHQgPDwiKSBBdGl2aWRhZGU6IEludmFsaWRhLiIgPDwgZW5kbDsKCQkJYkF0aXZvID0gZmFsc2U7CgkJfQoJfQoKCWlmICgobkNvbm5TdGF0ZVR5cGUgPT0gMyB8fCBuQ29ublN0YXRlVHlwZSA9PSAyKSAmJiAoYkF0aXZvICYmIGJNYXJrZXRDb25uZWN0ZWQpKQoJewoJCXN0YXJ0VG9TZWUoKTsKCX0KfQoKaW50IHdhaXRfZm9yX2VzYygpCnsKCWJvb2wgZXhpdCA9IGZhbHNlOwoJY291dCA8PCAicHJlc3MgZXNjIHRvIGV4aXQhICIgPDwgZW5kbDsKCXdoaWxlIChleGl0ID09IGZhbHNlKQl7CgkJaWYgKEdldEFzeW5jS2V5U3RhdGUoVktfRVNDQVBFKSkKCQl7CgkJCWV4aXQgPSB0cnVlOwoJCX0KCX0KCXJldHVybiAwOwp9CgppbnQgbWFya2V0KCkKewoJSElOU1RBTkNFIGhkbCA9IExvYWRMaWJyYXJ5QSgiUHJvZml0RExMLmRsbCIpOwoJaWYgKGhkbCkKCXsKCQlnX2luaXRpYWxpemUgPSByZWludGVycHJldF9jYXN0PEluaXRpYWxpemVNYXJrZXQ+KEdldFByb2NBZGRyZXNzKGhkbCwgIkluaXRpYWxpemVNYXJrZXQiKSk7CgkJZ19maW5hbGl6ZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8RmluYWxpemU+KEdldFByb2NBZGRyZXNzKGhkbCwgIkRMTEZpbmFsaXplIikpOwoJCWdfc3Vic2NyaWJlID0gcmVpbnRlcnByZXRfY2FzdDxTdWJzY3JpYmVUaWNrZXI+KEdldFByb2NBZGRyZXNzKGhkbCwgIlN1YnNjcmliZVRpY2tlciIpKTsKCQlnX3Vuc3Vic2NyaWJlID0gcmVpbnRlcnByZXRfY2FzdDxVbnN1YnNjcmliZVRpY2tlcj4oR2V0UHJvY0FkZHJlc3MoaGRsLCAiVW5zdWJzY3JpYmVUaWNrZXIiKSk7CgkJZ19nZXRBZ2VudE5hbWUgPSByZWludGVycHJldF9jYXN0PEdldEFnZW50TmFtZUJ5SUQ+KEdldFByb2NBZGRyZXNzKGhkbCwgIkdldEFnZW50TmFtZUJ5SUQiKSk7CgkJZ19nZXRBZ2VudFNob3J0TmFtZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8R2V0QWdlbnRTaG9ydE5hbWVCeUlEPihHZXRQcm9jQWRkcmVzcyhoZGwsICJHZXRBZ2VudFNob3J0TmFtZUJ5SUQiKSk7CgoJCWlmIChnX2luaXRpYWxpemUgJiYgZ19maW5hbGl6ZSAmJiBnX3N1YnNjcmliZSAmJiBnX3Vuc3Vic2NyaWJlICYmIGdfZ2V0QWdlbnROYW1lICYmIGdfZ2V0QWdlbnRTaG9ydE5hbWUpCgkJewoJCQljb3V0IDw8ICJUeXBlIHlvdXIgYWN0aXZhdGlvbiBjb2RlOiAiOwoJCQlzdHJpbmcgQ29kZSA9ICIxMjMxNTEzMjEzNTEzMTUxMzUxMzE1MzEzMjEiOwoJCQljaW4gPj4gQ29kZTsKICAgICAgICAgICAgY29uc3Qgd2NoYXJfdCoga2V5OwoJCQl3c3RyaW5nIGtleXN0ciA9IHN0ZDo6d3N0cmluZyhDb2RlLmJlZ2luKCksIENvZGUuZW5kKCkpOwoKCQkJa2V5ID0ga2V5c3RyLmNfc3RyKCk7CgoJCQlzaG9ydCBjID0gZ19pbml0aWFsaXplKGtleSwgJnN0YXRlQ2FsbGJhY2ssICZuZXdUcmFkZUNhbGxiYWNrLCAmbmV3RGFpbHlDYWxsYmFjaywgJm5ld0hpc3RvcnlDYWxsYmFjaywgJnByb2dyZXNzQ2FsbEJhY2ssICZuZXdUaW55Qm9va0NhbGxCYWNrKTsKCQkJaWYgKGMgIT0gTkxfT0spCgkJCXsKCQkJCWNvdXQgPDwgIkVycm9yIGluaXRpYWxpemluZyEiIDw8IGMgPDwgZW5kbDsKCQkJCXN5c3RlbSgicGF1c2UiKTsKCQkJCXJldHVybiAwOwoJCQl9CgoJCX0KCQllbHNlCgkJCWNvdXQgPDwgIkZ1bmN0aW9ucyBub3QgZm91bmQuIiA8PCBlbmRsOwoJfQoJZWxzZQoJewoJCWNvdXQgPDwgIkEgRExMIG5hbyBwb2RlIHNlciBjYXJyZWdhZGEuXG4iIDw8IGVuZGw7Cgl9CglyZXR1cm4gMDsKfQoKCmludCBtYWluKCkKewoJLy9jb3V0IDw8ICJBZ3VhcmRhbmRvIGNvbmV4YW8gY2xpZW50ZS4iIDw8IGVuZGw7CgkvL3NlcnZlcigpOwoJbWFya2V0KCk7CiAgICB3YWl0X2Zvcl9lc2MoKTsKfQo=
compilation info
Main.java:1: error: illegal character: '#'
#undef UNICODE
^
Main.java:3: error: illegal character: '#'
#define _WIN32_WINNT 0x501
^
Main.java:5: error: illegal character: '#'
#include <windows.h>
^
Main.java:6: error: illegal character: '#'
#include <fstream>
^
Main.java:7: error: illegal character: '#'
#include <winsock2.h>
^
Main.java:8: error: illegal character: '#'
#include <ws2tcpip.h>
^
Main.java:9: error: illegal character: '#'
#include <stdlib.h>
^
Main.java:10: error: illegal character: '#'
#include <stdio.h>
^
Main.java:11: error: illegal character: '#'
#include <iostream>
^
Main.java:12: error: illegal character: '#'
#include <string>
^
Main.java:13: error: illegal character: '#'
#include <map>
^
Main.java:14: error: illegal character: '#'
#include <vector>
^
Main.java:15: error: illegal character: '#'
#include <ctime>
^
Main.java:16: error: illegal character: '#'
#include <tchar.h>
^
Main.java:17: error: illegal character: '#'
#include <string.h>
^
Main.java:18: error: illegal character: '#'
#include <errno.h>
^
Main.java:20: error: illegal character: '#'
#pragma comment (lib, "Ws2_32.lib")
^
Main.java:21: error: illegal character: '#'
#pragma warning(disable:4996)
^
Main.java:23: error: illegal character: '#'
#define DEFAULT_BUFLEN 512
^
Main.java:24: error: illegal character: '#'
#define DEFAULT_PORT "5000"
^
Main.java:27: error: class, interface, or enum expected
using namespace std;
^
Main.java:29: error: class, interface, or enum expected
bool bAtivo = false;
^
Main.java:30: error: class, interface, or enum expected
bool bMarketConnected = false;
^
Main.java:32: error: class, interface, or enum expected
typedef struct
^
Main.java:35: error: class, interface, or enum expected
wchar_t * bolsa;
^
Main.java:36: error: class, interface, or enum expected
int feed;
^
Main.java:37: error: class, interface, or enum expected
} TAssetID;
^
Main.java:40: error: class, interface, or enum expected
typedef void (__stdcall *TStateCallback)(int nResult, int result);
^
Main.java:43: error: class, interface, or enum expected
typedef void (__stdcall *TNewTradeCallback)(TAssetID assetId, wchar_t* date, float price, float vol, int qtd, int buyAgent, int sellAgent, int tradeType);
^
Main.java:44: error: class, interface, or enum expected
typedef void (__stdcall *TNewDailyCallback)(TAssetID TAssetIDRec, wchar_t* date, float sOpen, float sHigh, float sLow, float sClose, float sVol, float sAjuste, float sMaxLimit, float sMinLimit, int sVolBuyer, int sVolSeller, int nQtd, int nNegocios, int nContratosOpen, int nQtdBuyer, int nQtdSeller, int nNegBuyer, int nNegSeller);
^
Main.java:45: error: class, interface, or enum expected
typedef void(__stdcall *TNewHistoryCallback)(TAssetID assetId, wchar_t* date, float price, float vol, int qtd, int buyAgent, int sellAgent, int tradeType);
^
Main.java:46: error: class, interface, or enum expected
typedef void(__stdcall *TProgressCallBack)(TAssetID assetId, int nProgress);
^
Main.java:47: error: class, interface, or enum expected
typedef void(__stdcall *TNewTinyBookCallBack)(TAssetID assetId, float price, int qtd, int side);
^
Main.java:50: error: class, interface, or enum expected
extern "C" {
^
Main.java:58: error: class, interface, or enum expected
typedef signed char (__stdcall *Finalize)();
^
Main.java:59: error: class, interface, or enum expected
typedef signed char (__stdcall *SubscribeTicker)(const wchar_t *ticker, const wchar_t *bolsa);
^
Main.java:60: error: class, interface, or enum expected
typedef signed char (__stdcall *UnsubscribeTicker)(const wchar_t *ticker, const wchar_t *bolsa);
^
Main.java:61: error: class, interface, or enum expected
typedef wchar_t* (__stdcall *GetAgentNameByID)(int nID);
^
Main.java:62: error: class, interface, or enum expected
typedef wchar_t* (__stdcall *GetAgentShortNameByID)(int nID);
^
Main.java:63: error: class, interface, or enum expected
typedef signed char(__stdcall *GetHistoryTradesInInterval)(const wchar_t *pwcTicker, const wchar_t *bolsa, wchar_t* dateStart, wchar_t* dateTimeStart);
^
Main.java:64: error: class, interface, or enum expected
}
^
Main.java:69: error: class, interface, or enum expected
const signed char NL_ERR_INIT = 80; // Not initialized
^
Main.java:70: error: class, interface, or enum expected
const signed char NL_ERR_INVALID_ARGS = 90; // Invalid arguments
^
Main.java:71: error: class, interface, or enum expected
const signed char NL_ERR_INTERNAL_ERROR = 100; // Internal error
^
Main.java:73: error: class, interface, or enum expected
bool g_Activated = false;
^
Main.java:77: error: class, interface, or enum expected
InitializeMarket g_initialize;
^
Main.java:78: error: class, interface, or enum expected
Finalize g_finalize;
^
Main.java:79: error: class, interface, or enum expected
SubscribeTicker g_subscribe;
^
Main.java:80: error: class, interface, or enum expected
UnsubscribeTicker g_unsubscribe;
^
Main.java:81: error: class, interface, or enum expected
GetAgentNameByID g_getAgentName;
^
Main.java:82: error: class, interface, or enum expected
GetAgentShortNameByID g_getAgentShortName;
^
Main.java:85: error: class, interface, or enum expected
void __stdcall newTradeCallback(TAssetID assetId, wchar_t* date, float price, float vol, int qtd, int buyAgent, int sellAgent, int tradeType){}
^
Main.java:94: error: class, interface, or enum expected
std::time_t t = std::time(0);
^
Main.java:95: error: class, interface, or enum expected
std::tm* now = std::localtime(&t);
^
Main.java:96: error: class, interface, or enum expected
novadata = std::to_wstring(now->tm_hour).c_str();
^
Main.java:97: error: class, interface, or enum expected
novadata += std::to_wstring(now->tm_min).c_str();
^
Main.java:98: error: class, interface, or enum expected
novadata += std::to_wstring(now->tm_sec).c_str();
^
Main.java:99: error: class, interface, or enum expected
const wchar_t* ledata = novadata.c_str();
^
Main.java:101: error: class, interface, or enum expected
if (nConnStateType == 0) { // notificacoes de login
^
Main.java:104: error: class, interface, or enum expected
}
^
Main.java:107: error: class, interface, or enum expected
}
^
Main.java:110: error: class, interface, or enum expected
}
^
Main.java:113: error: class, interface, or enum expected
}
^
Main.java:116: error: class, interface, or enum expected
}
^
Main.java:119: error: class, interface, or enum expected
}
^
Main.java:125: error: class, interface, or enum expected
}
^
Main.java:128: error: class, interface, or enum expected
}
^
Main.java:131: error: class, interface, or enum expected
}
^
Main.java:134: error: class, interface, or enum expected
}
^
Main.java:137: error: class, interface, or enum expected
}
^
Main.java:140: error: class, interface, or enum expected
}
^
Main.java:147: error: class, interface, or enum expected
bMarketConnected = true;
^
Main.java:148: error: class, interface, or enum expected
}else{
^
Main.java:150: error: class, interface, or enum expected
bMarketConnected = false;
^
Main.java:151: error: class, interface, or enum expected
}
^
Main.java:158: error: class, interface, or enum expected
bAtivo = true;
^
Main.java:159: error: class, interface, or enum expected
}else{
^
Main.java:161: error: class, interface, or enum expected
bAtivo = false;
^
Main.java:162: error: class, interface, or enum expected
}
^
Main.java:168: error: class, interface, or enum expected
}
^
Main.java:174: error: class, interface, or enum expected
cout << "press esc to exit! " << endl;
^
Main.java:175: error: class, interface, or enum expected
while (exit == false) {
^
Main.java:179: error: class, interface, or enum expected
}
^
Main.java:182: error: class, interface, or enum expected
}
^
Main.java:187: error: class, interface, or enum expected
if (hdl)
^
Main.java:190: error: class, interface, or enum expected
g_finalize = reinterpret_cast<Finalize>(GetProcAddress(hdl, "DLLFinalize"));
^
Main.java:191: error: class, interface, or enum expected
g_subscribe = reinterpret_cast<SubscribeTicker>(GetProcAddress(hdl, "SubscribeTicker"));
^
Main.java:192: error: class, interface, or enum expected
g_unsubscribe = reinterpret_cast<UnsubscribeTicker>(GetProcAddress(hdl, "UnsubscribeTicker"));
^
Main.java:193: error: class, interface, or enum expected
g_getAgentName = reinterpret_cast<GetAgentNameByID>(GetProcAddress(hdl, "GetAgentNameByID"));
^
Main.java:194: error: class, interface, or enum expected
g_getAgentShortName = reinterpret_cast<GetAgentShortNameByID>(GetProcAddress(hdl, "GetAgentShortNameByID"));
^
Main.java:196: error: class, interface, or enum expected
if (g_initialize && g_finalize && g_subscribe && g_unsubscribe && g_getAgentName && g_getAgentShortName)
^
Main.java:199: error: class, interface, or enum expected
string Code = "123151321351315135131531321";
^
Main.java:200: error: class, interface, or enum expected
cin >> Code;
^
Main.java:201: error: class, interface, or enum expected
const wchar_t* key;
^
Main.java:202: error: class, interface, or enum expected
wstring keystr = std::wstring(Code.begin(), Code.end());
^
Main.java:204: error: class, interface, or enum expected
key = keystr.c_str();
^
Main.java:206: error: class, interface, or enum expected
short c = g_initialize(key, &stateCallback, &newTradeCallback, &newDailyCallback, &newHistoryCallback, &progressCallBack, &newTinyBookCallBack);
^
Main.java:207: error: class, interface, or enum expected
if (c != NL_OK)
^
Main.java:210: error: class, interface, or enum expected
system("pause");
^
Main.java:211: error: class, interface, or enum expected
return 0;
^
100 errors
stdout