I am doing a custom data feed for NT writing code on C++ (Embarcadero CBuilder). I can connect to NTDirect.DLL, can call Last or Ask or LastPlayback function, but no data go to NT. What I do wrong? Below is a code sample and setting in NT:
1. NT setting: new symbol "RTEST" as stock with external mapping "RTEST"
2. Connected to External Data Feed
3. AT Interface in File menu is checked
4. The code on C++ and Delphi (both don't work):
Header file:
typedef int (*NTDirectAskPlayback)(wchar_t *instrument, double price, int size, wchar_t *timestamp);
typedef int (*NTDirectAsk)(wchar_t *instrument, double price, int size);
extern NTDirectConnected Connected;
extern NTDirectAskPlayback AskPlayback;
extern NTDirectAsk Ask;
cpp file(some functions was omitted)
bool LoadDLLs()
{
UnicodeString NTDirectName="NTDirect.dll";
HINSTANCE h_NTDirect;
h_NTDirect=LoadLib(NTDirectName.c_str());
Connected=(NTDirectConnected)GetProcAddr(h_NTDirec t, "Connected");
AskPlayback=(NTDirectAskPlayback)GetProcAddr(h_NTD irect, "AskPlayback");
Ask=(NTDirectAsk)GetProcAddr(h_NTDirect, "Ask");
}
void __fastcall TForm1::Button3Click(TObject *Sender)
{
int r;
UnicodeString Ticker="RTEST";
UnicodeString Time="20110119100000";
r=Connected(1);
r=Ask(Ticker.w_str(),Price,Volume);
r=AskPlayback(Ticker.w_str(),192080,24,Time.w_str( ));
// r is 0, so function call is success
}
or in Delphi:
Function LastPlayback( Symbol: string; Price: Double; Size: Integer; Timestamp: string ): integer; stdcall; external 'NtDirect.dll';
Function Last( Symbol: ShortString; Price: Double; Size: Integer ): integer; stdcall; external 'NtDirect.dll';
procedure TForm1.Button1Click(Sender: TObject);
var r:integer;
begin
r:=LastPlayback('RTEST',192080,34,'20110120100010' );
r:=Last('RTEST',192080,34);
// r is 0, so function call is success
end;
Comment