Vc code


通達信L2行情接口, 包括普通行情接口所有功能, 並新增了十檔行情, 逐筆成交,買賣隊列和深圳逐筆委托(上海證券交易所不對外提供逐筆委托數據)這四個新功能.

// TdxHqDemoCpp.cpp : 定義控制台應用程序的入口點。
//

#include "stdafx.h"
#include <windows.h>
#include <winbase.h>
#include <iostream>
#include <vector>
using namespace std;


//開發文檔
//

//1.行情API均是TdxHqApi.dll文件的導出函數,包括以下函數:(所有行情函數均為客戶端主動請求查詢,不是服務器推送)

//bool TdxL2Hq_GetDetailTransactionData(byte Market, char* Zqdm, int Start, short& Count, char* Result, char* ErrInfo);//獲取逐筆成交
//bool TdxL2Hq_GetDetailOrderData(byte Market, char* Zqdm, int Start, short& Count, char* Result, char* ErrInfo);//獲取逐筆委托
//bool TdxL2Hq_GetSecurityQuotes10 (byte Market[], char* Zqdm[], short& Count, char* Result, char* ErrInfo);//獲取十擋報價
//bool TdxL2Hq_GetBuySellQueue(byte Market, char* Zqdm, char* Result, char* ErrInfo);//獲取買賣隊列


//bool  TdxL2Hq_Connect(char* IP, int Port, char* Result, char* ErrInfo);//連接券商行情服務器
//void  TdxL2Hq_Disconnect();//斷開服務器
//bool  TdxL2Hq_GetSecurityCount(byte Market, short& Result, char* ErrInfo);//獲取市場內所有證券的數目
//bool  TdxL2Hq_GetSecurityList(byte Market, short Start, short& Count, char* Result, char* ErrInfo);//獲取指定范圍內所有的證券代碼
//bool  TdxL2Hq_GetSecurityBars(byte Category, byte Market, char* Zqdm, short Start, short& Count, char* Result, char* ErrInfo);//獲取股票K線
//bool  TdxL2Hq_GetIndexBars(byte Category, byte Market, char* Zqdm, short Start, short& Count, char* Result, char* ErrInfo);//獲取指數K線
//bool  TdxL2Hq_GetMinuteTimeData(byte Market,  char* Zqdm, char* Result, char* ErrInfo);//獲取分時圖數據
//bool  TdxL2Hq_GetHistoryMinuteTimeData(byte Market, char* Zqdm, int date, char* Result, char* ErrInfo);//獲取歷史分時圖數據
//bool  TdxL2Hq_GetTransactionData(byte Market, char* Zqdm, short Start, short& Count, char* Result, char* ErrInfo);//獲取分時成交
//bool  TdxL2Hq_GetHistoryTransactionData(byte Market, char* Zqdm, short Start, short& Count, int date, char* Result, char* ErrInfo);//獲取歷史分時成交
//bool  TdxL2Hq_GetSecurityQuotes(byte Market[], char* Zqdm[], short& Count, char* Result, char* ErrInfo);//獲取盤口五檔報價
//bool  TdxL2Hq_GetCompanyInfoCategory(byte Market, char* Zqdm, char* Result, char* ErrInfo);//獲取F10信息類別
//bool  TdxL2Hq_GetCompanyInfoContent(byte Market, char* Zqdm, char* FileName, int Start, int Length, char* Result, char* ErrInfo);//獲取F10信息內容
//bool  TdxL2Hq_GetXDXRInfo(byte Market, char* Zqdm, char* Result, char* ErrInfo);//獲取權息數據
//bool  TdxL2Hq_GetFinanceInfo(byte Market, char* Zqdm, char* Result, char* ErrInfo);//獲取財務信息



///行情接口執行后,如果失敗,則字符串ErrInfo保存了出錯信息中文說明;
///如果成功,則字符串Result保存了結果數據,形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。
///返回的Result結果數據都是\n,\t分隔的中文字符串,比如查詢K線數據,返回的結果字符串就形如

///“時間\t開盤價\t收盤價\t最高價\t最低價\t成交量\t成交額\n
///20150519\t4.644000\t4.732000\t4.747000\t4.576000\t146667487\t683638848.000000\n
///20150520\t4.756000\t4.850000\t4.960000\t4.756000\t353161092\t1722953216.000000”

///查得此數據之后,通過分割字符串, 可以恢復為幾行幾列的表格形式的數據


//2.API使用流程為: 應用程序先調用TdxL2Hq_Connect連接通達信行情服務器,然后才可以調用其他接口獲取行情數據,應用程序應自行處理網絡斷線問題, 接口是線程安全的
//如果斷線,調用任意api函數后,api會返回已經斷線的錯誤信息,應用程序應根據此錯誤信息重新連接服務器。


//3.各個函數功能說明

/// <summary>
/// 獲取逐筆成交數據
/// </summary>
/// <param name="Market">市場代碼,   0->深圳     1->上海</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="Start">K線開始位置,最后一條K線位置是0, 前一條是1, 依此類推</param>
/// <param name="Count">API執行前,表示用戶要請求的K線數目, API執行后,保存了實際返回的K線數目,最大2000</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall* TdxL2Hq_GetDetailTransactionDataDelegate) (byte Market, char* Zqdm, int Start, short& Count, char* Result, char* ErrInfo);




/// <summary>
/// 獲取深圳逐筆委托數據
/// </summary>
/// <param name="Market">市場代碼,   0->深圳     1->上海</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="Start">K線開始位置,最后一條K線位置是0, 前一條是1, 依此類推</param>
/// <param name="Count">API執行前,表示用戶要請求的K線數目, API執行后,保存了實際返回的K線數目,最大2000</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall* TdxL2Hq_GetDetailOrderDataDelegate) (byte Market, char* Zqdm, int Start, short& Count, char* Result, char* ErrInfo);

/// <summary>
/// 批量獲取多個證券的十檔報價數據
/// </summary>
/// <param name="Market">市場代碼,   0->深圳     1->上海, 第i個元素表示第i個證券的市場代碼</param>
/// <param name="Zqdm">證券代碼, Count個證券代碼組成的數組</param>
/// <param name="Count">API執行前,表示用戶要請求的證券數目,最大50, API執行后,保存了實際返回的數目</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall* TdxL2Hq_GetSecurityQuotes10Delegate) (byte Market[], char* Zqdm[], short& Count, char* Result, char* ErrInfo);


/// <summary>
/// 獲取買賣隊列數據
/// </summary>
/// <param name="Market">市場代碼,   0->深圳     1->上海</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall* TdxL2Hq_GetBuySellQueueDelegate) (byte Market, char* Zqdm, char* Result, char* ErrInfo);




/// <summary>
///  連接通達信行情服務器
/// </summary>
/// <param name="IP">服務器IP,可在演示版內查得</param>
/// <param name="Port">服務器端口</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool (__stdcall*  TdxL2Hq_ConnectDelegate)(char* IP, int Port, char* Result, char* ErrInfo);


/// <summary>
/// 斷開同服務器的連接
/// </summary>
typedef void(__stdcall* TdxL2Hq_DisconnectDelegate)();

/// <summary>
/// 獲取市場內所有證券的數量
/// </summary>
/// <param name="Market">市場代碼,   0->深圳     1->上海</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的證券數量</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall* TdxL2Hq_GetSecurityCountDelegate)(byte Market, short& Result, char* ErrInfo);


/// <summary>
/// 獲取市場內從某個位置開始的1000支股票的股票代碼
/// </summary>
/// <param name="Market">市場代碼,   0->深圳     1->上海</param>
/// <param name="Start">股票開始位置,第一個股票是0, 第二個是1, 依此類推,位置信息依據TdxL2Hq_GetSecurityCount返回的證券總數確定</param>
/// <param name="Count">API執行后,保存了實際返回的股票數目,</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的證券代碼信息,形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall* TdxL2Hq_GetSecurityListDelegate)(byte Market, short Start, short& Count, char* Result, char* ErrInfo);


/// <summary>
/// 獲取證券的K線數據
/// </summary>
/// <param name="Category">K線種類, 0->5分鍾K線    1->15分鍾K線    2->30分鍾K線  3->1小時K線    4->日K線  5->周K線  6->月K線  7->1分鍾  8->1分鍾K線  9->日K線  10->季K線  11->年K線< / param>
/// <param name="Market">市場代碼,   0->深圳     1->上海</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="Start">K線開始位置,最后一條K線位置是0, 前一條是1, 依此類推</param>
/// <param name="Count">API執行前,表示用戶要請求的K線數目, API執行后,保存了實際返回的K線數目, 最大值800</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall* TdxL2Hq_GetSecurityBarsDelegate)(byte Category, byte Market, char* Zqdm, short Start, short& Count, char* Result, char* ErrInfo);


/// <summary>
/// 獲取指數的K線數據
/// </summary>
/// <param name="Category">K線種類, 0->5分鍾K線    1->15分鍾K線    2->30分鍾K線  3->1小時K線    4->日K線  5->周K線  6->月K線  7->1分鍾  8->1分鍾K線  9->日K線  10->季K線  11->年K線< / param>
/// <param name="Market">市場代碼,   0->深圳     1->上海</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="Start">K線開始位置,最后一條K線位置是0, 前一條是1, 依此類推</param>
/// <param name="Count">API執行前,表示用戶要請求的K線數目, API執行后,保存了實際返回的K線數目,最大值800</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool (__stdcall* TdxL2Hq_GetIndexBarsDelegate)(byte Category, byte Market, char* Zqdm, short Start, short& Count, char* Result, char* ErrInfo);



/// <summary>
/// 獲取分時數據
/// </summary>
/// <param name="Market">市場代碼,   0->深圳     1->上海</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool (__stdcall* TdxL2Hq_GetMinuteTimeDataDelegate)(byte Market, char* Zqdm, char* Result, char* ErrInfo);


/// <summary>
/// 獲取歷史分時數據
/// </summary>
/// <param name="Market">市場代碼,   0->深圳     1->上海</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="Date">日期, 比如2014年1月1日為整數20140101</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall* TdxL2Hq_GetHistoryMinuteTimeDataDelegate)(byte Market, char* Zqdm, int Date, char* Result, char* ErrInfo);


/// <summary>
/// 獲取分時成交數據
/// </summary>
/// <param name="Market">市場代碼,   0->深圳     1->上海</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="Start">K線開始位置,最后一條K線位置是0, 前一條是1, 依此類推</param>
/// <param name="Count">API執行前,表示用戶要請求的K線數目, API執行后,保存了實際返回的K線數目</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall* TdxL2Hq_GetTransactionDataDelegate) (byte Market, char* Zqdm, short Start, short& Count, char* Result, char* ErrInfo);


/// <summary>
/// 獲取歷史分時成交數據
/// </summary>
/// <param name="Market">市場代碼,   0->深圳     1->上海</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="Start">K線開始位置,最后一條K線位置是0, 前一條是1, 依此類推</param>
/// <param name="Count">API執行前,表示用戶要請求的K線數目, API執行后,保存了實際返回的K線數目</param>
/// <param name="Date">日期, 比如2014年1月1日為整數20140101</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall* TdxL2Hq_GetHistoryTransactionDataDelegate) (byte Market, char* Zqdm, short Start, short& Count, int Date, char* Result, char* ErrInfo);

/// <summary>
/// 批量獲取多個證券的五檔報價數據
/// </summary>
/// <param name="Market">市場代碼,   0->深圳     1->上海, 第i個元素表示第i個證券的市場代碼</param>
/// <param name="Zqdm">證券代碼, Count個證券代碼組成的數組</param>
/// <param name="Count">API執行前,表示用戶要請求的證券數目,最大290, API執行后,保存了實際返回的數目</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall* TdxL2Hq_GetSecurityQuotesDelegate) (byte Market[], char* Zqdm[], short& Count, char* Result, char* ErrInfo);


/// <summary>
/// 獲取F10資料的分類
/// </summary>
/// <param name="Market">市場代碼,   0->深圳     1->上海</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall* TdxL2Hq_GetCompanyInfoCategoryDelegate) (byte Market, char* Zqdm, char* Result, char* ErrInfo);




/// <summary>
/// 獲取F10資料的某一分類的內容
/// </summary>
/// <param name="Market">市場代碼,   0->深圳     1->上海</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="FileName">類目的文件名, 由TdxL2Hq_GetCompanyInfoCategory返回信息中獲取</param>
/// <param name="Start">類目的開始位置, 由TdxL2Hq_GetCompanyInfoCategory返回信息中獲取</param>
/// <param name="Length">類目的長度, 由TdxL2Hq_GetCompanyInfoCategory返回信息中獲取</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據,出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall* TdxL2Hq_GetCompanyInfoContentDelegate) (byte Market, char* Zqdm, char* FileName, int Start, int Length, char* Result, char* ErrInfo);




/// <summary>
/// 獲取除權除息信息
/// </summary>
/// <param name="Market">市場代碼,   0->深圳     1->上海</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據,出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall* TdxL2Hq_GetXDXRInfoDelegate) (byte Market, char* Zqdm, char* Result, char* ErrInfo);



/// <summary>
/// 獲取財務信息
/// </summary>
/// <param name="Market">市場代碼,   0->深圳     1->上海</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據,出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall* TdxL2Hq_GetFinanceInfoDelegate) (byte Market, char* Zqdm, char* Result, char* ErrInfo);




int _tmain(int argc, _TCHAR* argv[])
{
    //載入dll, dll要復制到debug目錄下,或者release目錄下,采用多字節字符集編程設置,用戶編程時需自己控制浮點數顯示的小數位數與精度
    HMODULE TdxApiHMODULE = LoadLibrary("TdxHqApi.dll");

    //獲取api函數
    TdxL2Hq_GetDetailTransactionDataDelegate TdxL2Hq_GetDetailTransactionData = (TdxL2Hq_GetDetailTransactionDataDelegate)GetProcAddress(TdxApiHMODULE, "TdxL2Hq_GetDetailTransactionData");
    TdxL2Hq_GetDetailOrderDataDelegate TdxL2Hq_GetDetailOrderData = (TdxL2Hq_GetDetailOrderDataDelegate)GetProcAddress(TdxApiHMODULE, "TdxL2Hq_GetDetailOrderData");
    TdxL2Hq_GetSecurityQuotes10Delegate TdxL2Hq_GetSecurityQuotes10 = (TdxL2Hq_GetSecurityQuotes10Delegate)GetProcAddress(TdxApiHMODULE, "TdxL2Hq_GetSecurityQuotes10");
    TdxL2Hq_GetBuySellQueueDelegate TdxL2Hq_GetBuySellQueue = (TdxL2Hq_GetBuySellQueueDelegate)GetProcAddress(TdxApiHMODULE, "TdxL2Hq_GetBuySellQueue");


    TdxL2Hq_ConnectDelegate TdxL2Hq_Connect = (TdxL2Hq_ConnectDelegate)GetProcAddress(TdxApiHMODULE, "TdxL2Hq_Connect");
    TdxL2Hq_DisconnectDelegate TdxL2Hq_Disconnect = (TdxL2Hq_DisconnectDelegate)GetProcAddress(TdxApiHMODULE, "TdxL2Hq_Disconnect");
    TdxL2Hq_GetSecurityBarsDelegate TdxL2Hq_GetSecurityBars = (TdxL2Hq_GetSecurityBarsDelegate)GetProcAddress(TdxApiHMODULE, "TdxL2Hq_GetSecurityBars");
    TdxL2Hq_GetIndexBarsDelegate TdxL2Hq_GetIndexBars = (TdxL2Hq_GetIndexBarsDelegate)GetProcAddress(TdxApiHMODULE, "TdxL2Hq_GetIndexBars");
    TdxL2Hq_GetMinuteTimeDataDelegate TdxL2Hq_GetMinuteTimeData = (TdxL2Hq_GetMinuteTimeDataDelegate)GetProcAddress(TdxApiHMODULE, "TdxL2Hq_GetMinuteTimeData");
    TdxL2Hq_GetHistoryMinuteTimeDataDelegate TdxL2Hq_GetHistoryMinuteTimeData = (TdxL2Hq_GetHistoryMinuteTimeDataDelegate)GetProcAddress(TdxApiHMODULE, "TdxL2Hq_GetHistoryMinuteTimeData");
    TdxL2Hq_GetTransactionDataDelegate TdxL2Hq_GetTransactionData = (TdxL2Hq_GetTransactionDataDelegate)GetProcAddress(TdxApiHMODULE, "TdxL2Hq_GetTransactionData");
    TdxL2Hq_GetHistoryTransactionDataDelegate TdxL2Hq_GetHistoryTransactionData = (TdxL2Hq_GetHistoryTransactionDataDelegate)GetProcAddress(TdxApiHMODULE, "TdxL2Hq_GetHistoryTransactionData");
    TdxL2Hq_GetSecurityQuotesDelegate TdxL2Hq_GetSecurityQuotes = (TdxL2Hq_GetSecurityQuotesDelegate)GetProcAddress(TdxApiHMODULE, "TdxL2Hq_GetSecurityQuotes");
    TdxL2Hq_GetCompanyInfoCategoryDelegate TdxL2Hq_GetCompanyInfoCategory = (TdxL2Hq_GetCompanyInfoCategoryDelegate)GetProcAddress(TdxApiHMODULE, "TdxL2Hq_GetCompanyInfoCategory");
    TdxL2Hq_GetCompanyInfoContentDelegate TdxL2Hq_GetCompanyInfoContent = (TdxL2Hq_GetCompanyInfoContentDelegate)GetProcAddress(TdxApiHMODULE, "TdxL2Hq_GetCompanyInfoContent");
    TdxL2Hq_GetXDXRInfoDelegate TdxL2Hq_GetXDXRInfo = (TdxL2Hq_GetXDXRInfoDelegate)GetProcAddress(TdxApiHMODULE, "TdxL2Hq_GetXDXRInfo");
    TdxL2Hq_GetFinanceInfoDelegate TdxL2Hq_GetFinanceInfo = (TdxL2Hq_GetFinanceInfoDelegate)GetProcAddress(TdxApiHMODULE, "TdxL2Hq_GetFinanceInfo");



    //開始獲取行情數據
    char* Result = new char[1024 * 1024];
    char* ErrInfo = new char[256];
    short Count = 10;

    ///所有券商L2服務器都一樣,為以下地址:
    ///高級行情_上海電信1:61.152.107.173:7707
    ///高級行情_上海電信2:61.152.168.232:7715
    ///高級行情_上海電信3:61.152.168.227:7709
    ///高級行情_上海電信4:61.152.107.170:7707
    ///高級行情_深圳電信1:119.147.86.172:443
    ///高級行情_深圳電信2:113.105.73.81:7721
    ///高級行情_東莞電信1:113.105.142.138:7709
    ///高級行情_東莞電信2:113.105.142.139:7709
    ///高級行情_武漢電信1:59.175.238.41:443
    ///高級行情_武漢電信2:119.97.185.4:7709
    ///高級行情_武漢電信3:59.175.238.38:7707
    ///高級行情_濟南聯通:123.129.245.202:80
    ///高級行情_北京聯通:61.135.142.90:443
    ///高級行情_上海聯通:210.51.55.212:80
    ///高級行情_東莞聯通1:58.253.96.198:7709
    ///高級行情_東莞聯通2:58.253.96.200:7709

    bool bool1 =  TdxL2Hq_Connect("61.152.107.173", 7707,Result, ErrInfo);
    if (!bool1)
    {
        cout << ErrInfo << endl;//登錄失敗
        return;
    }

    cout << Result << endl;//登錄成功


    bool1 = TdxL2Hq_GetBuySellQueue(1, "600030", Result, ErrInfo); cout << Result << endl;


        byte Market[] = {0,1};
    char* Zqdm[] = {"000001","600030"};
    short ZqdmCount = 2;
    bool1 = TdxL2Hq_GetSecurityQuotes10(Market, Zqdm, ZqdmCount, Result, ErrInfo); cout << Result << endl;


    bool1 = TdxL2Hq_GetDetailTransactionData(0, "000001", 0, Count, Result, ErrInfo); cout << Result << endl;

    bool1 = TdxL2Hq_GetDetailOrderData(0, "000001", 0, Count, Result, ErrInfo); cout << Result << endl;



    //獲取股票K線數據
    //bool1 = TdxL2Hq_GetSecurityBars(0, 0, "000001", 0, Count, Result, ErrInfo);//數據種類, 0->5分鍾K線    1->15分鍾K線    2->30分鍾K線  3->1小時K線    4->日K線  5->周K線  6->月K線  7->1分鍾K線  8->1分鍾K線  9->日K線  10->季K線  11->年K線
    //if (!bool1)
    //{
    //    cout << ErrInfo << endl;
    //    return 0;
    //}
    //cout << Result << endl;



    //獲取指數K線數據
    bool1 = TdxL2Hq_GetIndexBars(4, 1, "000001", 0, Count, Result, ErrInfo);//數據種類, 0->5分鍾K線    1->15分鍾K線    2->30分鍾K線  3->1小時K線    4->日K線  5->周K線  6->月K線  7->1分鍾K線     8->1分鍾K線    9->日K線  10->季K線  11->年K線
    if (!bool1)
    {
        cout << ErrInfo << endl;
        return 0;
    }
    cout << Result << endl;





    //獲取分時圖數據
    /*bool1 = TdxL2Hq_GetMinuteTimeData(0, "000001",  Result, ErrInfo);
    if (!bool1)
    {
        cout << ErrInfo << endl;
        return 0;
    }
    cout << Result << endl;*/


    //獲取歷史分時圖數據
    /*bool1 = TdxL2Hq_GetHistoryMinuteTimeData(0, "000001", 20140904, Result, ErrInfo);
    if (!bool1)
    {
        cout << ErrInfo << endl;
        return 0;
    }
    cout << Result << endl;*/


    //獲取分筆圖數據
    /*bool1 = TdxL2Hq_GetTransactionData(0, "000001", 0, Count, Result, ErrInfo);
    if (!bool1)
    {
    cout << ErrInfo << endl;
    return 0;
    }
    cout << Result << endl;*/



    //獲取歷史分筆圖數據
    /*bool1 = TdxL2Hq_GetHistoryTransactionData(0, "000001", 0, Count, 20140904,  Result, ErrInfo);
    if (!bool1)
    {
        cout << ErrInfo << endl;
        return 0;
    }
    cout << Result << endl;*/




    //獲取五檔報價數據
    /*byte Market[] = {0,1};
    char* Zqdm[] = {"000001","600030"};
    short ZqdmCount = 2;
    bool1 = TdxL2Hq_GetSecurityQuotes(Market, Zqdm, ZqdmCount, Result, ErrInfo);
    if (!bool1)
    {
        cout << ErrInfo << endl;
        return 0;
    }
    cout << Result << endl; */



    //獲取F10數據的類別
    /*bool1 = TdxL2Hq_GetCompanyInfoCategory(0, "000001", Result, ErrInfo);
    if (!bool1)
    {
        cout << ErrInfo << endl;
        return 0;
    }
    cout << Result << endl;*/



    //獲取F10數據的某類別的內容
    /*bool1 = TdxL2Hq_GetCompanyInfoContent(1, "600030", "600030.txt", 0, 16824, Result, ErrInfo);
    if (!bool1)
    {
        cout << ErrInfo << endl;
        return 0;
    }
    cout << Result << endl;*/


    //獲取除權除息信息
    /*bool1 = TdxL2Hq_GetXDXRInfo(0, "000001", Result, ErrInfo);
    if (!bool1)
    {
        cout << ErrInfo << endl;
        return 0;
    }
    cout << Result << endl;*/





    //獲取財務信息
    /*bool1 = TdxL2Hq_GetFinanceInfo(0, "000001", Result, ErrInfo);
    if (!bool1)
    {
        cout << ErrInfo << endl;
        return 0;
    }
    cout << Result << endl;*/






    TdxL2Hq_Disconnect();

    cout << "已經斷開服務器"<<endl;


    FreeLibrary(TdxApiHMODULE);

    int a;
    cin >> a;

    return 0;
}

通達信擴展行情接口, 提供的數據主要為期貨、期權、三板和港股行情數據

// TdxHqDemoCpp.cpp : 定義控制台應用程序的入口點。
//

#include "stdafx.h"
#include <windows.h>
#include <winbase.h>
#include <iostream>

using namespace std;


//開發文檔
//

//1.擴展行情API均是TdxHqApi.dll文件的導出函數,包括以下函數:(所有行情函數均為客戶端主動請求查詢,不是服務器推送)
//bool  TdxExHq_Connect(char* IP, int Port, char* Result, char* ErrInfo);//連接券商行情服務器
//void  TdxExHq_Disconnect();//斷開服務器
//bool  TdxExHq_GetMarkets(char* Result, char* ErrInfo);//獲取所有市場代碼
//bool  TdxExHq_GetInstrumentCount(int& Result, char* ErrInfo);//獲取所有品種的數目
//bool  TdxExHq_GetInstrumentInfo(int Start, short Count, char* Result, char* ErrInfo);//獲取所有品種代碼
//bool  TdxExHq_GetInstrumentBars(byte Category, byte Market, char* Zqdm, int Start, short& Count, char* Result, char* ErrInfo);//獲取指定品種的K線數據
//bool  TdxExHq_GetMinuteTimeData(byte Market, char* Zqdm, char* Result, char* ErrInfo);//獲取指定品種的分時圖數據
//bool  TdxExHq_GetTransactionData(byte Market, char* Zqdm, int Start, short& Count, char* Result, char* ErrInfo);//獲取指定品種的分時成交數據
//bool  TdxExHq_GetInstrumentQuote (byte Market, char* Zqdm, char* Result, char* ErrInfo);//獲取指定品種的盤口報價
//bool  TdxExHq_GetHistoryTransactionData(byte Market, char* Zqdm, int date, int Start, short& Count, char* Result, char* ErrInfo);//獲取指定品種的歷史分時成交數據
//bool  TdxExHq_GetHistoryMinuteTimeData(byte Market, char* Zqdm, int date, char* Result, char* ErrInfo);//獲取指定品種的分時圖數據

///行情接口執行后,如果失敗,則字符串ErrInfo保存了出錯信息中文說明;
///如果成功,則字符串Result保存了結果數據,形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。
///返回的Result結果數據都是\n,\t分隔的中文字符串,比如查詢K線數據,返回的結果字符串就形如

///“時間\t開盤價\t收盤價\t最高價\t最低價\t成交量\t成交額\n
///20150519\t4.644000\t4.732000\t4.747000\t4.576000\t146667487\t683638848.000000\n
///20150520\t4.756000\t4.850000\t4.960000\t4.756000\t353161092\t1722953216.000000”

///查得此數據之后,通過分割字符串, 可以恢復為幾行幾列的表格形式的數據



//2.API使用流程為: 應用程序先調用TdxExHq_Connect連接通達信行情服務器,然后才可以調用其他接口獲取行情數據,應用程序應自行處理網絡斷線問題, 接口是線程安全的.
//如果斷線,調用任意api函數后,api會返回已經斷線的錯誤信息,應用程序應根據此錯誤信息重新連接服務器。

//3.各個函數功能說明
/// <summary>
///  連接通達信擴展行情服務器
/// </summary>
/// <param name="IP">服務器IP,可在券商通達信軟件登錄界面“通訊設置”按鈕內查得</param>
/// <param name="Port">服務器端口</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall*  TdxExHq_ConnectDelegate)(char* IP, int Port, char* Result, char* ErrInfo);


/// <summary>
/// 斷開同服務器的連接
/// </summary>
typedef void(__stdcall*  TdxExHq_DisconnectDelegate)();


/// <summary>
///  獲取擴展行情中支持的各個市場的市場代碼
/// </summary>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
typedef bool(__stdcall*  TdxExHq_GetMarketsDelegate)(char* Result, char* ErrInfo); 




/// <summary>
///  獲取所有期貨合約的總數
/// </summary>
/// <param name="Result">此API執行返回后,Result內保存了返回的合約總數。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
typedef bool(__stdcall*  TdxExHq_GetInstrumentCountDelegate)(int& Result, char* ErrInfo);



/// <summary>
///  獲取指定范圍的期貨合約的代碼
/// </summary>
// <param name="Start">合約范圍的開始位置, 由TdxExHq_GetInstrumentCount返回信息中確定</param>
/// <param name="Count">合約的數目, 由TdxExHq_GetInstrumentCount返回信息中獲取</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據,出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
typedef bool(__stdcall*  TdxExHq_GetInstrumentInfoDelegate)(int Start, short Count, char* Result, char* ErrInfo); 


/// <summary>
/// 獲取合約的K線數據
/// </summary>
/// <param name="Category">K線種類, 0->5分鍾K線    1->15分鍾K線    2->30分鍾K線  3->1小時K線    4->日K線  5->周K線  6->月K線  7->1分鍾  8->1分鍾K線  9->日K線  10->季K線  11->年K線< / param>
/// <param name="Market">市場代碼</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="Start">K線開始位置,最后一條K線位置是0, 前一條是1, 依此類推</param>
/// <param name="Count">API執行前,表示用戶要請求的K線數目, API執行后,保存了實際返回的K線數目, 最大值800</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall*  TdxExHq_GetInstrumentBarsDelegate)(byte Category, byte Market, char* Zqdm, int Start, short& Count, char* Result, char* ErrInfo);


/// <summary>
/// 獲取分時數據
/// </summary>
/// <param name="Market">市場代碼,</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall*  TdxExHq_GetMinuteTimeDataDelegate)(byte Market, char* Zqdm, char* Result, char* ErrInfo);



/// <summary>
/// 獲取分時成交數據
/// </summary>
/// <param name="Market">市場代碼</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="Start">K線開始位置,最后一條K線位置是0, 前一條是1, 依此類推</param>
/// <param name="Count">API執行前,表示用戶要請求的K線數目, API執行后,保存了實際返回的K線數目</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall*  TdxExHq_GetTransactionDataDelegate)(byte Market, char* Zqdm, int Start, short& Count, char* Result, char* ErrInfo);



/// <summary>
/// 獲取合約的五檔報價數據
/// </summary>
/// <param name="Market">市場代碼</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall*  TdxExHq_GetInstrumentQuoteDelegate) (byte Market, char* Zqdm,  char* Result, char* ErrInfo);


/// <summary>
/// 獲取歷史分時成交數據
/// </summary>
/// <param name="Market">市場代碼,</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="Start">K線開始位置,最后一條K線位置是0, 前一條是1, 依此類推</param>
/// <param name="Count">API執行前,表示用戶要請求的K線數目, API執行后,保存了實際返回的K線數目</param>
/// <param name="Date">日期, 比如2014年1月1日為整數20140101</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall*  TdxExHq_GetHistoryTransactionDataDelegate)(byte Market, char* Zqdm, int date, int Start, short& Count, char* Result, char* ErrInfo);



/// <summary>
/// 獲取歷史分時數據
/// </summary>
/// <param name="Market">市場代碼</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="Date">日期, 比如2014年1月1日為整數20140101</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall*  TdxExHq_GetHistoryMinuteTimeDataDelegate)(byte Market, char* Zqdm, int date, char* Result, char* ErrInfo);

int _tmain(int argc, _TCHAR* argv[])
{
    //載入dll, dll要復制到debug目錄下,或者release目錄下,采用多字節字符集編程設置,用戶編程時需自己控制浮點數顯示的小數位數與精度
    HMODULE TdxApiHMODULE = LoadLibrary("TdxHqApi.dll");

    //獲取api函數
    TdxExHq_ConnectDelegate TdxExHq_Connect = (TdxExHq_ConnectDelegate)GetProcAddress(TdxApiHMODULE, "TdxExHq_Connect");
    TdxExHq_DisconnectDelegate TdxExHq_Disconnect = (TdxExHq_DisconnectDelegate)GetProcAddress(TdxApiHMODULE, "TdxExHq_Disconnect");
    TdxExHq_GetMarketsDelegate TdxExHq_GetMarkets = (TdxExHq_GetMarketsDelegate)GetProcAddress(TdxApiHMODULE, "TdxExHq_GetMarkets");
    TdxExHq_GetInstrumentCountDelegate TdxExHq_GetInstrumentCount = (TdxExHq_GetInstrumentCountDelegate)GetProcAddress(TdxApiHMODULE, "TdxExHq_GetInstrumentCount");
    TdxExHq_GetInstrumentInfoDelegate TdxExHq_GetInstrumentInfo = (TdxExHq_GetInstrumentInfoDelegate)GetProcAddress(TdxApiHMODULE, "TdxExHq_GetInstrumentInfo");
    TdxExHq_GetInstrumentBarsDelegate TdxExHq_GetInstrumentBars = (TdxExHq_GetInstrumentBarsDelegate)GetProcAddress(TdxApiHMODULE, "TdxExHq_GetInstrumentBars");
    TdxExHq_GetMinuteTimeDataDelegate TdxExHq_GetMinuteTimeData = (TdxExHq_GetMinuteTimeDataDelegate)GetProcAddress(TdxApiHMODULE, "TdxExHq_GetMinuteTimeData");
    TdxExHq_GetTransactionDataDelegate TdxExHq_GetTransactionData = (TdxExHq_GetTransactionDataDelegate)GetProcAddress(TdxApiHMODULE, "TdxExHq_GetTransactionData");
    TdxExHq_GetInstrumentQuoteDelegate TdxExHq_GetInstrumentQuote = (TdxExHq_GetInstrumentQuoteDelegate)GetProcAddress(TdxApiHMODULE, "TdxExHq_GetInstrumentQuote");
    TdxExHq_GetHistoryTransactionDataDelegate TdxExHq_GetHistoryTransactionData = (TdxExHq_GetHistoryTransactionDataDelegate)GetProcAddress(TdxApiHMODULE, "TdxExHq_GetHistoryTransactionData");
    TdxExHq_GetHistoryMinuteTimeDataDelegate TdxExHq_GetHistoryMinuteTimeData = (TdxExHq_GetHistoryMinuteTimeDataDelegate)GetProcAddress(TdxApiHMODULE, "TdxExHq_GetHistoryMinuteTimeData");




    //開始獲取行情數據
    char* Result = new char[1024 * 1024];
    char* ErrInfo = new char[256];
    short Count = 80;

    //連接服務器
    bool bool1=TdxExHq_Connect("111.111.111.111", 7727, Result, ErrInfo);
    cout << Result << endl;



    //bool1 = TdxExHq_GetMarkets(Result, ErrInfo);
    //if (!bool1)
    //{
    //    cout << ErrInfo << endl;//連接失敗
    //    return 0;
    //}
    //cout << Result << endl;




    //int InstrumentCount = 0;
    //bool1 = TdxExHq_GetInstrumentCount(InstrumentCount, ErrInfo);
    //cout << InstrumentCount << endl;




    //bool1 = TdxExHq_GetInstrumentInfo(0, 511, Result, ErrInfo);//Count最大511
    //if (!bool1)
    //{
    //    cout << ErrInfo << endl;//連接失敗
    //    return 0;
    //}
    //cout << Result << endl;



    //Count = 50;
    //bool1 = TdxExHq_GetInstrumentBars(0, 30, "AGL3", 0, Count, Result, ErrInfo);// 0->5分鍾K線    1->15分鍾K線    2->30分鍾K線  3->1小時K線    4->日K線  5->周K線  6->月K線  7->1分鍾  8->1分鍾K線  9->日K線  10->季K線  11->年K線
    //if (!bool1)
    //{
    //    cout << ErrInfo << endl;//連接失敗
    //    return 0;
    //}
    //cout << Result << endl;

    //bool1 = TdxExHq_GetMinuteTimeData(47, "IF1409", Result, ErrInfo);
    //if (!bool1)
    //{
    //    cout << ErrInfo << endl;//連接失敗
    //    return 0;
    //}
    //cout << Result << endl;


    
    //bool1 = TdxExHq_GetTransactionData(47, "IF1409", 0, Count, Result, ErrInfo);
    //if (!bool1)
    //{
    //    cout << ErrInfo << endl;//連接失敗
    //    return 0;
    //}
    //cout << Result << endl;


    //獲取五檔報價數據
    /*bool1 = TdxExHq_GetInstrumentQuote(47, "IF1409",  Result, ErrInfo);
    if (!bool1)
    {
    cout << ErrInfo << endl;
    return 0;
    }
    cout << Result << endl; */


    
    //bool1 = TdxExHq_GetHistoryTransactionData(47, "IF1409", 20140919, 0, Count, Result, ErrInfo);
    //if (!bool1)
    //{
    //    cout << ErrInfo << endl;//連接失敗
    //    return 0;
    //}
    //cout << Result << endl;




    bool1 = TdxExHq_GetHistoryMinuteTimeData(47, "IF1410", 20140827, Result, ErrInfo);
    if (!bool1)
    {
        cout << ErrInfo << endl;//連接失敗
        return 0;
    }
    cout << Result << endl;


    


    TdxExHq_Disconnect();



    

    cout << "已經斷開服務器"<<endl;


    FreeLibrary(TdxApiHMODULE);

    int a;
    cin >> a;

    return 0;
}
View Code

通達信普通行情接口, 提供的數據主要為A股行情數據, 使用方法: 先點擊連接, 然后可以獲取行情數據;

// TdxHqDemoCpp.cpp : 定義控制台應用程序的入口點。
//

#include "stdafx.h"
#include <windows.h>
#include <winbase.h>
#include <iostream>

using namespace std;


//開發文檔
//

//1.行情API均是TdxHqApi.dll文件的導出函數,包括以下函數:(所有行情函數均為客戶端主動請求查詢,不是服務器推送)
//bool  TdxHq_Connect(char* IP, int Port, char* Result, char* ErrInfo);//連接券商行情服務器
//void  TdxHq_Disconnect();//斷開服務器
//bool  TdxHq_GetSecurityCount(byte Market, short& Result, char* ErrInfo);//獲取指定市場內的證券數目
//bool  TdxHq_GetSecurityList(byte Market, short Start, short& Count, char* Result, char* ErrInfo);//獲取市場內指定范圍內的所有證券代碼
//bool  TdxHq_GetSecurityBars(byte Category, byte Market, char* Zqdm, short Start, short& Count, char* Result, char* ErrInfo);//獲取股票K線
//bool  TdxHq_GetIndexBars(byte Category, byte Market, char* Zqdm, short Start, short& Count, char* Result, char* ErrInfo);//獲取指數K線
//bool  TdxHq_GetMinuteTimeData(byte Market, char* Zqdm, char* Result, char* ErrInfo);//獲取分時圖數據
//bool  TdxHq_GetHistoryMinuteTimeData(byte Market, char* Zqdm, int date, char* Result, char* ErrInfo);//獲取歷史分時圖數據
//bool  TdxHq_GetTransactionData(byte Market, char* Zqdm, short Start, short& Count, char* Result, char* ErrInfo);//獲取分時成交
//bool  TdxHq_GetHistoryTransactionData(byte Market, char* Zqdm, short Start, short& Count, int date, char* Result, char* ErrInfo);//獲取歷史分時成交
//bool  TdxHq_GetSecurityQuotes(byte Market[], char* Zqdm[], short& Count, char* Result, char* ErrInfo);//獲取盤口五檔報價
//bool  TdxHq_GetCompanyInfoCategory(byte Market, char* Zqdm, char* Result, char* ErrInfo);//獲取F10信息類別
//bool  TdxHq_GetCompanyInfoContent(byte Market, char* Zqdm, char* FileName, int Start, int Length, char* Result, char* ErrInfo);//獲取F10信息內容
//bool  TdxHq_GetXDXRInfo(byte Market, char* Zqdm, char* Result, char* ErrInfo);//獲取權息數據
//bool  TdxHq_GetFinanceInfo(byte Market, char* Zqdm, char* Result, char* ErrInfo);//獲取財務數據


///行情接口執行后,如果失敗,則字符串ErrInfo保存了出錯信息中文說明;
///如果成功,則字符串Result保存了結果數據,形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。
///返回的Result結果數據都是\n,\t分隔的中文字符串,比如查詢K線數據,返回的結果字符串就形如

///“時間\t開盤價\t收盤價\t最高價\t最低價\t成交量\t成交額\n
///20150519\t4.644000\t4.732000\t4.747000\t4.576000\t146667487\t683638848.000000\n
///20150520\t4.756000\t4.850000\t4.960000\t4.756000\t353161092\t1722953216.000000”

///查得此數據之后,通過分割字符串, 可以恢復為幾行幾列的表格形式的數據



//2.API使用流程為: 應用程序先調用TdxHq_Connect連接通達信行情服務器,然后才可以調用其他接口獲取行情數據,應用程序應自行處理網絡斷線問題, 接口是線程安全的
//如果斷線,調用任意api函數后,api會返回已經斷線的錯誤信息,應用程序應根據此錯誤信息重新連接服務器。


//3.各個函數功能說明
/// <summary>
///  連接通達信行情服務器
/// </summary>
/// <param name="IP">服務器IP,可在券商通達信軟件登錄界面“通訊設置”按鈕內查得</param>
/// <param name="Port">服務器端口</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool (__stdcall*  TdxHq_ConnectDelegate)(char* IP, int Port, char* Result, char* ErrInfo);


/// <summary>
/// 斷開同服務器的連接
/// </summary>
typedef void(__stdcall* TdxHq_DisconnectDelegate)();




/// <summary>
/// 獲取證券的K線數據
/// </summary>
/// <param name="Category">K線種類, 0->5分鍾K線    1->15分鍾K線    2->30分鍾K線  3->1小時K線    4->日K線  5->周K線  6->月K線  7->1分鍾  8->1分鍾K線  9->日K線  10->季K線  11->年K線< / param>
/// <param name="Market">市場代碼,   0->深圳     1->上海</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="Start">K線開始位置,最后一條K線位置是0, 前一條是1, 依此類推</param>
/// <param name="Count">API執行前,表示用戶要請求的K線數目, API執行后,保存了實際返回的K線數目, 最大值800</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall* TdxHq_GetSecurityBarsDelegate)(byte Category, byte Market, char* Zqdm, short Start, short& Count, char* Result, char* ErrInfo);





/// <summary>
/// 獲取市場內所有證券的數量
/// </summary>
/// <param name="Market">市場代碼,   0->深圳     1->上海</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的證券數量</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall* TdxHq_GetSecurityCountDelegate)(byte Market, short& Result, char* ErrInfo);


/// <summary>
/// 獲取市場內從某個位置開始的1000支股票的股票代碼
/// </summary>
/// <param name="Market">市場代碼,   0->深圳     1->上海</param>
/// <param name="Start">股票開始位置,第一個股票是0, 第二個是1, 依此類推,位置信息依據TdxHq_GetSecurityCount返回的證券總數確定</param>
/// <param name="Count">API執行后,保存了實際返回的股票數目,</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的證券代碼信息,形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall* TdxHq_GetSecurityListDelegate)(byte Market, short Start, short& Count, char* Result, char* ErrInfo);







/// <summary>
/// 獲取指數的K線數據
/// </summary>
/// <param name="Category">K線種類, 0->5分鍾K線    1->15分鍾K線    2->30分鍾K線  3->1小時K線    4->日K線  5->周K線  6->月K線  7->1分鍾  8->1分鍾K線  9->日K線  10->季K線  11->年K線< / param>
/// <param name="Market">市場代碼,   0->深圳     1->上海</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="Start">K線開始位置,最后一條K線位置是0, 前一條是1, 依此類推</param>
/// <param name="Count">API執行前,表示用戶要請求的K線數目, API執行后,保存了實際返回的K線數目,最大值800</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool (__stdcall* TdxHq_GetIndexBarsDelegate)(byte Category, byte Market, char* Zqdm, short Start, short& Count, char* Result, char* ErrInfo);



/// <summary>
/// 獲取分時數據
/// </summary>
/// <param name="Market">市場代碼,   0->深圳     1->上海</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool (__stdcall* TdxHq_GetMinuteTimeDataDelegate)(byte Market, char* Zqdm, char* Result, char* ErrInfo);


/// <summary>
/// 獲取歷史分時數據
/// </summary>
/// <param name="Market">市場代碼,   0->深圳     1->上海</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="Date">日期, 比如2014年1月1日為整數20140101</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall* TdxHq_GetHistoryMinuteTimeDataDelegate)(byte Market, char* Zqdm, int Date, char* Result, char* ErrInfo);


/// <summary>
/// 獲取分時成交數據
/// </summary>
/// <param name="Market">市場代碼,   0->深圳     1->上海</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="Start">K線開始位置,最后一條K線位置是0, 前一條是1, 依此類推</param>
/// <param name="Count">API執行前,表示用戶要請求的K線數目, API執行后,保存了實際返回的K線數目</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall* TdxHq_GetTransactionDataDelegate) (byte Market, char* Zqdm, short Start, short& Count, char* Result, char* ErrInfo);


/// <summary>
/// 獲取歷史分時成交數據
/// </summary>
/// <param name="Market">市場代碼,   0->深圳     1->上海</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="Start">K線開始位置,最后一條K線位置是0, 前一條是1, 依此類推</param>
/// <param name="Count">API執行前,表示用戶要請求的K線數目, API執行后,保存了實際返回的K線數目</param>
/// <param name="Date">日期, 比如2014年1月1日為整數20140101</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall* TdxHq_GetHistoryTransactionDataDelegate) (byte Market, char* Zqdm, short Start, short& Count, int Date, char* Result, char* ErrInfo);

/// <summary>
/// 批量獲取多個證券的五檔報價數據
/// </summary>
/// <param name="Market">市場代碼,   0->深圳     1->上海, 第i個元素表示第i個證券的市場代碼</param>
/// <param name="Zqdm">證券代碼, Count個證券代碼組成的數組</param>
/// <param name="Count">API執行前,表示用戶要請求的證券數目,最大290, API執行后,保存了實際返回的數目</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall* TdxHq_GetSecurityQuotesDelegate) (byte Market[], char* Zqdm[], short& Count, char* Result, char* ErrInfo);


/// <summary>
/// 獲取F10資料的分類
/// </summary>
/// <param name="Market">市場代碼,   0->深圳     1->上海</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據, 形式為表格數據,行數據之間通過\n字符分割,列數據之間通過\t分隔。一般要分配1024*1024字節的空間。出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall* TdxHq_GetCompanyInfoCategoryDelegate) (byte Market, char* Zqdm, char* Result, char* ErrInfo);




/// <summary>
/// 獲取F10資料的某一分類的內容
/// </summary>
/// <param name="Market">市場代碼,   0->深圳     1->上海</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="FileName">類目的文件名, 由TdxHq_GetCompanyInfoCategory返回信息中獲取</param>
/// <param name="Start">類目的開始位置, 由TdxHq_GetCompanyInfoCategory返回信息中獲取</param>
/// <param name="Length">類目的長度, 由TdxHq_GetCompanyInfoCategory返回信息中獲取</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據,出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall* TdxHq_GetCompanyInfoContentDelegate) (byte Market, char* Zqdm, char* FileName, int Start, int Length, char* Result, char* ErrInfo);




/// <summary>
/// 獲取除權除息信息
/// </summary>
/// <param name="Market">市場代碼,   0->深圳     1->上海</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據,出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall* TdxHq_GetXDXRInfoDelegate) (byte Market, char* Zqdm, char* Result, char* ErrInfo);



/// <summary>
/// 獲取財務信息
/// </summary>
/// <param name="Market">市場代碼,   0->深圳     1->上海</param>
/// <param name="Zqdm">證券代碼</param>
/// <param name="Result">此API執行返回后,Result內保存了返回的查詢數據,出錯時為空字符串。</param>
/// <param name="ErrInfo">此API執行返回后,如果出錯,保存了錯誤信息說明。一般要分配256字節的空間。沒出錯時為空字符串。</param>
/// <returns>成功返貨true, 失敗返回false</returns>
typedef bool(__stdcall* TdxHq_GetFinanceInfoDelegate) (byte Market, char* Zqdm, char* Result, char* ErrInfo);




int _tmain(int argc, _TCHAR* argv[])
{
    //載入dll, dll要復制到debug目錄下,或者release目錄下,采用多字節字符集編程設置,用戶編程時需自己控制浮點數顯示的小數位數與精度
    HMODULE TdxApiHMODULE = LoadLibrary("TdxHqApi.dll");

    //獲取api函數
    TdxHq_ConnectDelegate TdxHq_Connect = (TdxHq_ConnectDelegate)GetProcAddress(TdxApiHMODULE, "TdxHq_Connect");
    TdxHq_DisconnectDelegate TdxHq_Disconnect = (TdxHq_DisconnectDelegate)GetProcAddress(TdxApiHMODULE, "TdxHq_Disconnect");
    TdxHq_GetSecurityBarsDelegate TdxHq_GetSecurityBars = (TdxHq_GetSecurityBarsDelegate)GetProcAddress(TdxApiHMODULE, "TdxHq_GetSecurityBars");
    TdxHq_GetIndexBarsDelegate TdxHq_GetIndexBars = (TdxHq_GetIndexBarsDelegate)GetProcAddress(TdxApiHMODULE, "TdxHq_GetIndexBars");
    TdxHq_GetMinuteTimeDataDelegate TdxHq_GetMinuteTimeData = (TdxHq_GetMinuteTimeDataDelegate)GetProcAddress(TdxApiHMODULE, "TdxHq_GetMinuteTimeData");
    TdxHq_GetHistoryMinuteTimeDataDelegate TdxHq_GetHistoryMinuteTimeData = (TdxHq_GetHistoryMinuteTimeDataDelegate)GetProcAddress(TdxApiHMODULE, "TdxHq_GetHistoryMinuteTimeData");
    TdxHq_GetTransactionDataDelegate TdxHq_GetTransactionData = (TdxHq_GetTransactionDataDelegate)GetProcAddress(TdxApiHMODULE, "TdxHq_GetTransactionData");
    TdxHq_GetHistoryTransactionDataDelegate TdxHq_GetHistoryTransactionData = (TdxHq_GetHistoryTransactionDataDelegate)GetProcAddress(TdxApiHMODULE, "TdxHq_GetHistoryTransactionData");
    TdxHq_GetSecurityQuotesDelegate TdxHq_GetSecurityQuotes = (TdxHq_GetSecurityQuotesDelegate)GetProcAddress(TdxApiHMODULE, "TdxHq_GetSecurityQuotes");
    TdxHq_GetCompanyInfoCategoryDelegate TdxHq_GetCompanyInfoCategory = (TdxHq_GetCompanyInfoCategoryDelegate)GetProcAddress(TdxApiHMODULE, "TdxHq_GetCompanyInfoCategory");
    TdxHq_GetCompanyInfoContentDelegate TdxHq_GetCompanyInfoContent = (TdxHq_GetCompanyInfoContentDelegate)GetProcAddress(TdxApiHMODULE, "TdxHq_GetCompanyInfoContent");
    TdxHq_GetXDXRInfoDelegate TdxHq_GetXDXRInfo = (TdxHq_GetXDXRInfoDelegate)GetProcAddress(TdxApiHMODULE, "TdxHq_GetXDXRInfo");
    TdxHq_GetFinanceInfoDelegate TdxHq_GetFinanceInfo = (TdxHq_GetFinanceInfoDelegate)GetProcAddress(TdxApiHMODULE, "TdxHq_GetFinanceInfo");



    //開始獲取行情數據
    char* Result = new char[1024 * 1024];
    char* ErrInfo = new char[256];
    short Count = 10;

    //連接服務器
    bool bool1=TdxHq_Connect("218.18.103.38", 7709, Result, ErrInfo);
    if (!bool1)
    {
        cout << ErrInfo << endl;//連接失敗
        return 0;
    }
    cout << Result << endl;



    //獲取股票K線數據
    //bool1 = TdxHq_GetSecurityBars(0, 0, "000001", 0, Count, Result, ErrInfo);//數據種類, 0->5分鍾K線    1->15分鍾K線    2->30分鍾K線  3->1小時K線    4->日K線  5->周K線  6->月K線  7->1分鍾K線  8->1分鍾K線  9->日K線  10->季K線  11->年K線
    //if (!bool1)
    //{
    //    cout << ErrInfo << endl;
    //    return 0;
    //}
    //cout << Result << endl;



    //獲取指數K線數據
    bool1 = TdxHq_GetIndexBars(4, 1, "000001", 0, Count, Result, ErrInfo);//數據種類, 0->5分鍾K線    1->15分鍾K線    2->30分鍾K線  3->1小時K線    4->日K線  5->周K線  6->月K線  7->1分鍾K線     8->1分鍾K線    9->日K線  10->季K線  11->年K線
    if (!bool1)
    {
        cout << ErrInfo << endl;
        return 0;
    }
    cout << Result << endl;





    //獲取分時圖數據
    /*bool1 = TdxHq_GetMinuteTimeData(0, "000001",  Result, ErrInfo);
    if (!bool1)
    {
        cout << ErrInfo << endl;
        return 0;
    }
    cout << Result << endl;*/


    //獲取歷史分時圖數據
    /*bool1 = TdxHq_GetHistoryMinuteTimeData(0, "000001", 20140904, Result, ErrInfo);
    if (!bool1)
    {
        cout << ErrInfo << endl;
        return 0;
    }
    cout << Result << endl;*/


    //獲取分筆圖數據
    /*bool1 = TdxHq_GetTransactionData(0, "000001", 0, Count, Result, ErrInfo);
    if (!bool1)
    {
    cout << ErrInfo << endl;
    return 0;
    }
    cout << Result << endl;*/



    //獲取歷史分筆圖數據
    /*bool1 = TdxHq_GetHistoryTransactionData(0, "000001", 0, Count, 20140904,  Result, ErrInfo);
    if (!bool1)
    {
        cout << ErrInfo << endl;
        return 0;
    }
    cout << Result << endl;*/




    //獲取五檔報價數據
    /*byte Market[] = {0,1};
    char* Zqdm[] = {"000001","600030"};
    short ZqdmCount = 2;
    bool1 = TdxHq_GetSecurityQuotes(Market, Zqdm, ZqdmCount, Result, ErrInfo);
    if (!bool1)
    {
        cout << ErrInfo << endl;
        return 0;
    }
    cout << Result << endl; */



    //獲取F10數據的類別
    /*bool1 = TdxHq_GetCompanyInfoCategory(0, "000001", Result, ErrInfo);
    if (!bool1)
    {
        cout << ErrInfo << endl;
        return 0;
    }
    cout << Result << endl;*/



    //獲取F10數據的某類別的內容
    /*bool1 = TdxHq_GetCompanyInfoContent(1, "600030", "600030.txt", 0, 16824, Result, ErrInfo);
    if (!bool1)
    {
        cout << ErrInfo << endl;
        return 0;
    }
    cout << Result << endl;*/


    //獲取除權除息信息
    /*bool1 = TdxHq_GetXDXRInfo(0, "000001", Result, ErrInfo);
    if (!bool1)
    {
        cout << ErrInfo << endl;
        return 0;
    }
    cout << Result << endl;*/





    //獲取財務信息
    /*bool1 = TdxHq_GetFinanceInfo(0, "000001", Result, ErrInfo);
    if (!bool1)
    {
        cout << ErrInfo << endl;
        return 0;
    }
    cout << Result << endl;*/






    TdxHq_Disconnect();

    cout << "已經斷開服務器"<<endl;


    FreeLibrary(TdxApiHMODULE);

    int a;
    cin >> a;

    return 0;
}
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM