// TdxHqDemoCpp.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include #include #include using namespace std; //开发文档 // //1.行情API均是TdxHqApi.dll文件的导出函数,包括以下函数:(所有行情函数均为客户端主动请求查询,不是服务器推送) // bool OpenTdx(char* ErrInfo);//打开通达信 // void CloseTdx();//关闭通达信 //int TdxHq_Multi_Connect(char* IP, int Port, char* Result, char* ErrInfo);//连接券商行情服务器 //void TdxHq_Multi_Disconnect(int ConnectionID);//断开服务器 //bool TdxHq_Multi_GetSecurityCount(int ConnectionID,byte Market, short& Result, char* ErrInfo);//获取市场内所有证券的数目 //bool TdxHq_Multi_GetSecurityList(int ConnectionID,byte Market, short Start, short& Count, char* Result, char* ErrInfo);//获取指定范围内所有的证券代码 //bool TdxHq_Multi_GetSecurityBars(int ConnectionID,byte Category, byte Market, char* Zqdm, short Start, short& Count, char* Result, char* ErrInfo);//获取股票K线 //bool TdxHq_Multi_GetIndexBars(int ConnectionID,byte Category, byte Market, char* Zqdm, short Start, short& Count, char* Result, char* ErrInfo);//获取指数K线 //bool TdxHq_Multi_GetMinuteTimeData(int ConnectionID,byte Market, char* Zqdm, char* Result, char* ErrInfo);//获取分时图数据 //bool TdxHq_Multi_GetHistoryMinuteTimeData(int ConnectionID,byte Market, char* Zqdm, int date, char* Result, char* ErrInfo);//获取历史分时图数据 //bool TdxHq_Multi_GetTransactionData(int ConnectionID,byte Market, char* Zqdm, short Start, short& Count, char* Result, char* ErrInfo);//获取分时成交 //bool TdxHq_Multi_GetHistoryTransactionData(int ConnectionID,byte Market, char* Zqdm, short Start, short& Count, int date, char* Result, char* ErrInfo);//获取历史分时成交 //bool TdxHq_Multi_GetSecurityQuotes(int ConnectionID,byte Market[], char* Zqdm[], short& Count, char* Result, char* ErrInfo);//获取盘口五档报价 //bool TdxHq_Multi_GetCompanyInfoCategory(int ConnectionID,byte Market, char* Zqdm, char* Result, char* ErrInfo);//获取F10信息类别 //bool TdxHq_Multi_GetCompanyInfoContent(int ConnectionID,byte Market, char* Zqdm, char* FileName, int Start, int Length, char* Result, char* ErrInfo);//获取F10信息内容 //bool TdxHq_Multi_GetXDXRInfo(int ConnectionID,byte Market, char* Zqdm, char* Result, char* ErrInfo);//获取权息数据 //bool TdxHq_Multi_GetFinanceInfo(int ConnectionID,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使用流程为: 应用程序先调用OpenTdx打开通达信实例,一个实例下可以同时建立多个到行情服务器的连接,每个连接称之为ConnectionID.应用程序先调用TdxHq_Multi_Connect获取ConnectionID, //可以重复调用TdxHq_Multi_Connect建立多个到行情服务器的连接,每个连接对应返回的ConnectionID, //然后才可以调用其他接口获取行情数据,应用程序应自行处理网络断线问题, 线程应只通过本线程建立的连接传输数据,不能通过其他线程建立的连接传输数据 //最后调用CloseTdx关闭通达信实例 //OpenTdx和CloseTdx在整个应用程序中只能被成功调用一次. //如果断线,调用任意api函数后,api会返回已经断线的错误信息,应用程序应根据此错误信息重新连接服务器。 //3.各个函数功能说明 /// /// 打开通达信实例 /// /// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。 /// 成功返回true, 失败返回false ///bool OpenTdx(char* ErrInfo); typedef bool(__stdcall* OpenTdxDelegate)(char* ErrInfo); /// /// 关闭通达信实例 /// ///void CloseTdx(); typedef void(__stdcall* CloseTdxDelegate)(); /// /// 连接通达信行情服务器 /// /// 服务器IP,可在演示版内查得 /// 服务器端口 /// 此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过\n字符分割,列数据之间通过\t分隔。一般要分配1024*1024字节的空间。出错时为空字符串。 /// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。 /// 成功返回所建立连接的编号, 失败返回-1 typedef int (__stdcall* TdxHq_Multi_ConnectDelegate)(char* IP, int Port, char* Result, char* ErrInfo); /// /// 断开同服务器的连接 /// /// 到服务器的连接编号,表示通过哪个连接获取数据 typedef void(__stdcall* TdxHq_Multi_DisconnectDelegate)(int ConnectionID); /// /// 获取市场内所有证券的数量 /// /// 到服务器的连接编号,表示通过哪个连接获取数据 /// 市场代码, 0->深圳 1->上海 /// 此API执行返回后,Result内保存了返回的证券数量 /// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。 /// 成功返货true, 失败返回false typedef bool(__stdcall* TdxHq_Multi_GetSecurityCountDelegate)(int ConnectionID, byte Market, short& Result, char* ErrInfo); /// /// 获取市场内某个范围内的1000支股票的股票代码 /// /// 到服务器的连接编号,表示通过哪个连接获取数据 /// 市场代码, 0->深圳 1->上海 /// 范围开始位置,第一个股票是0, 第二个是1, 依此类推,位置信息依据TdxHq_GetSecurityCount返回的证券总数确定 /// 范围大小,API执行后,保存了实际返回的股票数目, /// 此API执行返回后,Result内保存了返回的证券代码信息,形式为表格数据,行数据之间通过\n字符分割,列数据之间通过\t分隔。一般要分配1024*1024字节的空间。出错时为空字符串。 /// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。 /// 成功返货true, 失败返回false typedef bool(__stdcall* TdxHq_Multi_GetSecurityListDelegate)(int ConnectionID, byte Market, short Start, short& Count, char* Result, char* ErrInfo); /// /// 获取证券某个范围内的K线数据 /// /// 到服务器的连接编号,表示通过哪个连接获取数据 /// 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> /// 市场代码, 0->深圳 1->上海 /// 证券代码 /// 范围开始位置,最后一条K线位置是0, 前一条是1, 依此类推 /// 范围大小,API执行前,表示用户要请求的K线数目, API执行后,保存了实际返回的K线数目, 最大值800 /// 此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过\n字符分割,列数据之间通过\t分隔。一般要分配1024*1024字节的空间。出错时为空字符串。 /// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。 /// 成功返货true, 失败返回false typedef bool(__stdcall* TdxHq_Multi_GetSecurityBarsDelegate)(int ConnectionID, byte Category, byte Market, char* Zqdm, short Start, short& Count, char* Result, char* ErrInfo); /// /// 获取指数某个范围内的K线数据 /// /// 到服务器的连接编号,表示通过哪个连接获取数据 /// 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> /// 市场代码, 0->深圳 1->上海 /// 证券代码 /// 范围开始位置,最后一条K线位置是0, 前一条是1, 依此类推 /// 范围大小,API执行前,表示用户要请求的K线数目, API执行后,保存了实际返回的K线数目,最大值800 /// 此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过\n字符分割,列数据之间通过\t分隔。一般要分配1024*1024字节的空间。出错时为空字符串。 /// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。 /// 成功返货true, 失败返回false typedef bool (__stdcall* TdxHq_Multi_GetIndexBarsDelegate)(int ConnectionID, byte Category, byte Market, char* Zqdm, short Start, short& Count, char* Result, char* ErrInfo); /// /// 获取分时数据 /// /// 到服务器的连接编号,表示通过哪个连接获取数据 /// 市场代码, 0->深圳 1->上海 /// 证券代码 /// 此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过\n字符分割,列数据之间通过\t分隔。一般要分配1024*1024字节的空间。出错时为空字符串。 /// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。 /// 成功返货true, 失败返回false typedef bool (__stdcall* TdxHq_Multi_GetMinuteTimeDataDelegate)(int ConnectionID, byte Market, char* Zqdm, char* Result, char* ErrInfo); /// /// 获取历史分时数据 /// /// 到服务器的连接编号,表示通过哪个连接获取数据 /// 市场代码, 0->深圳 1->上海 /// 证券代码 /// 日期, 比如2014年1月1日为整数20140101 /// 此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过\n字符分割,列数据之间通过\t分隔。一般要分配1024*1024字节的空间。出错时为空字符串。 /// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。 /// 成功返货true, 失败返回false typedef bool(__stdcall* TdxHq_Multi_GetHistoryMinuteTimeDataDelegate)(int ConnectionID, byte Market, char* Zqdm, int Date, char* Result, char* ErrInfo); /// /// 获取分时成交某个范围内的数据 /// /// 到服务器的连接编号,表示通过哪个连接获取数据 /// 市场代码, 0->深圳 1->上海 /// 证券代码 /// 范围开始位置,最后一条K线位置是0, 前一条是1, 依此类推 /// 范围大小,API执行前,表示用户要请求的K线数目, API执行后,保存了实际返回的K线数目 /// 此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过\n字符分割,列数据之间通过\t分隔。一般要分配1024*1024字节的空间。出错时为空字符串。 /// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。 /// 成功返货true, 失败返回false typedef bool(__stdcall* TdxHq_Multi_GetTransactionDataDelegate) (int ConnectionID, byte Market, char* Zqdm, short Start, short& Count, char* Result, char* ErrInfo); /// /// 获取历史分时成交某个范围内数据 /// /// 到服务器的连接编号,表示通过哪个连接获取数据 /// 市场代码, 0->深圳 1->上海 /// 证券代码 /// 范围开始位置,最后一条K线位置是0, 前一条是1, 依此类推 /// 范围大小API执行前,表示用户要请求的K线数目, API执行后,保存了实际返回的K线数目 /// 日期, 比如2014年1月1日为整数20140101 /// 此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过\n字符分割,列数据之间通过\t分隔。一般要分配1024*1024字节的空间。出错时为空字符串。 /// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。 /// 成功返货true, 失败返回false typedef bool(__stdcall* TdxHq_Multi_GetHistoryTransactionDataDelegate) (int ConnectionID, byte Market, char* Zqdm, short Start, short& Count, int Date, char* Result, char* ErrInfo); /// /// 批量获取多个证券的五档报价数据 /// /// 到服务器的连接编号,表示通过哪个连接获取数据 /// 市场代码, 0->深圳 1->上海, 第i个元素表示第i个证券的市场代码 /// 证券代码, Count个证券代码组成的数组 /// API执行前,表示用户要请求的证券数目,最大50(不同券商可能不一样,具体数目请自行咨询券商或测试), API执行后,保存了实际返回的数目 /// 此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过\n字符分割,列数据之间通过\t分隔。一般要分配1024*1024字节的空间。出错时为空字符串。 /// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。 /// 成功返货true, 失败返回false typedef bool(__stdcall* TdxHq_Multi_GetSecurityQuotesDelegate) (int ConnectionID, byte Market[], char* Zqdm[], short& Count, char* Result, char* ErrInfo); /// /// 获取F10资料的分类 /// /// 到服务器的连接编号,表示通过哪个连接获取数据 /// 市场代码, 0->深圳 1->上海 /// 证券代码 /// 此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过\n字符分割,列数据之间通过\t分隔。一般要分配1024*1024字节的空间。出错时为空字符串。 /// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。 /// 成功返货true, 失败返回false typedef bool(__stdcall* TdxHq_Multi_GetCompanyInfoCategoryDelegate) (int ConnectionID, byte Market, char* Zqdm, char* Result, char* ErrInfo); /// /// 获取F10资料的某一分类的内容 /// /// 到服务器的连接编号,表示通过哪个连接获取数据 /// 市场代码, 0->深圳 1->上海 /// 证券代码 /// 类目的文件名, 由TdxHq_GetCompanyInfoCategory返回信息中获取 /// 类目的开始位置, 由TdxHq_GetCompanyInfoCategory返回信息中获取 /// 类目的长度, 由TdxHq_GetCompanyInfoCategory返回信息中获取 /// 此API执行返回后,Result内保存了返回的查询数据,出错时为空字符串。 /// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。 /// 成功返货true, 失败返回false typedef bool(__stdcall* TdxHq_Multi_GetCompanyInfoContentDelegate) (int ConnectionID, byte Market, char* Zqdm, char* FileName, int Start, int Length, char* Result, char* ErrInfo); /// /// 获取除权除息信息 /// /// 到服务器的连接编号,表示通过哪个连接获取数据 /// 市场代码, 0->深圳 1->上海 /// 证券代码 /// 此API执行返回后,Result内保存了返回的查询数据,出错时为空字符串。 /// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。 /// 成功返货true, 失败返回false typedef bool(__stdcall* TdxHq_Multi_GetXDXRInfoDelegate) (int ConnectionID, byte Market, char* Zqdm, char* Result, char* ErrInfo); /// /// 获取财务信息 /// /// 到服务器的连接编号,表示通过哪个连接获取数据 /// 市场代码, 0->深圳 1->上海 /// 证券代码 /// 此API执行返回后,Result内保存了返回的查询数据,出错时为空字符串。 /// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。 /// 成功返货true, 失败返回false typedef bool(__stdcall* TdxHq_Multi_GetFinanceInfoDelegate) (int ConnectionID, byte Market, char* Zqdm, char* Result, char* ErrInfo); int _tmain(int argc, _TCHAR* argv[]) { //载入dll, dll要复制到debug和release目录下,必须采用多字节字符集编程设置,用户编程时需自己控制浮点数显示的小数位数与精度 HMODULE TdxApiHMODULE = LoadLibrary("TdxHqApi.dll"); OpenTdxDelegate OpenTdx = (OpenTdxDelegate)GetProcAddress(TdxApiHMODULE, "OpenTdx"); CloseTdxDelegate CloseTdx = (CloseTdxDelegate)GetProcAddress(TdxApiHMODULE, "CloseTdx"); //获取api函数 TdxHq_Multi_ConnectDelegate TdxHq_Multi_Connect = (TdxHq_Multi_ConnectDelegate)GetProcAddress(TdxApiHMODULE, "TdxHq_Multi_Connect"); TdxHq_Multi_DisconnectDelegate TdxHq_Multi_Disconnect = (TdxHq_Multi_DisconnectDelegate)GetProcAddress(TdxApiHMODULE, "TdxHq_Multi_Disconnect"); TdxHq_Multi_GetSecurityBarsDelegate TdxHq_Multi_GetSecurityBars = (TdxHq_Multi_GetSecurityBarsDelegate)GetProcAddress(TdxApiHMODULE, "TdxHq_Multi_GetSecurityBars"); TdxHq_Multi_GetIndexBarsDelegate TdxHq_Multi_GetIndexBars = (TdxHq_Multi_GetIndexBarsDelegate)GetProcAddress(TdxApiHMODULE, "TdxHq_Multi_GetIndexBars"); TdxHq_Multi_GetMinuteTimeDataDelegate TdxHq_Multi_GetMinuteTimeData = (TdxHq_Multi_GetMinuteTimeDataDelegate)GetProcAddress(TdxApiHMODULE, "TdxHq_Multi_GetMinuteTimeData"); TdxHq_Multi_GetHistoryMinuteTimeDataDelegate TdxHq_Multi_GetHistoryMinuteTimeData = (TdxHq_Multi_GetHistoryMinuteTimeDataDelegate)GetProcAddress(TdxApiHMODULE, "TdxHq_Multi_GetHistoryMinuteTimeData"); TdxHq_Multi_GetTransactionDataDelegate TdxHq_Multi_GetTransactionData = (TdxHq_Multi_GetTransactionDataDelegate)GetProcAddress(TdxApiHMODULE, "TdxHq_Multi_GetTransactionData"); TdxHq_Multi_GetHistoryTransactionDataDelegate TdxHq_Multi_GetHistoryTransactionData = (TdxHq_Multi_GetHistoryTransactionDataDelegate)GetProcAddress(TdxApiHMODULE, "TdxHq_Multi_GetHistoryTransactionData"); TdxHq_Multi_GetSecurityQuotesDelegate TdxHq_Multi_GetSecurityQuotes = (TdxHq_Multi_GetSecurityQuotesDelegate)GetProcAddress(TdxApiHMODULE, "TdxHq_Multi_GetSecurityQuotes"); TdxHq_Multi_GetCompanyInfoCategoryDelegate TdxHq_Multi_GetCompanyInfoCategory = (TdxHq_Multi_GetCompanyInfoCategoryDelegate)GetProcAddress(TdxApiHMODULE, "TdxHq_Multi_GetCompanyInfoCategory"); TdxHq_Multi_GetCompanyInfoContentDelegate TdxHq_Multi_GetCompanyInfoContent = (TdxHq_Multi_GetCompanyInfoContentDelegate)GetProcAddress(TdxApiHMODULE, "TdxHq_Multi_GetCompanyInfoContent"); TdxHq_Multi_GetXDXRInfoDelegate TdxHq_Multi_GetXDXRInfo = (TdxHq_Multi_GetXDXRInfoDelegate)GetProcAddress(TdxApiHMODULE, "TdxHq_Multi_GetXDXRInfo"); TdxHq_Multi_GetFinanceInfoDelegate TdxHq_Multi_GetFinanceInfo = (TdxHq_Multi_GetFinanceInfoDelegate)GetProcAddress(TdxApiHMODULE, "TdxHq_Multi_GetFinanceInfo"); //开始获取行情数据 char* Result = new char[1024 * 1024]; char* ErrInfo = new char[256]; if (!OpenTdx(ErrInfo))//OpenTdx只能调用一次,如果调用失败,必须再调用直至成功 { cout << ErrInfo << endl; return; } short Count = 10; int ConnectionID1 = TdxHq_Multi_Connect("61.152.xxx.xxx", 7707,Result, ErrInfo);//建立第一个连接 //int ConnectionID2 = TdxHq_Multi_Connect("61.152.xxx.173", 7707,Result, ErrInfo);//建立第二个连接 //int ConnectionID3 = TdxHq_Multi_Connect("123.129.xxx.202", 80,Result, ErrInfo);//建立第三个连接 if (ConnectionID1==-1) { cout << ErrInfo << endl;//登录失败 return; } cout << Result << endl;//登录成功 //获取股票K线数据 //bool1 = TdxHq_Multi_GetSecurityBars(ConnectionID1,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_Multi_GetIndexBars(ConnectionID1,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_Multi_GetMinuteTimeData(ConnectionID1,0, "000001", Result, ErrInfo); if (!bool1) { cout << ErrInfo << endl; return 0; } cout << Result << endl;*/ //获取历史分时图数据 /*bool1 = TdxHq_Multi_GetHistoryMinuteTimeData(ConnectionID1,0, "000001", 20140904, Result, ErrInfo); if (!bool1) { cout << ErrInfo << endl; return 0; } cout << Result << endl;*/ //获取分笔图数据 /*bool1 = TdxHq_Multi_GetTransactionData(ConnectionID1,0, "000001", 0, Count, Result, ErrInfo); if (!bool1) { cout << ErrInfo << endl; return 0; } cout << Result << endl;*/ //获取历史分笔图数据 /*bool1 = TdxHq_Multi_GetHistoryTransactionData(ConnectionID1,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_Multi_GetSecurityQuotes(ConnectionID1,Market, Zqdm, ZqdmCount, Result, ErrInfo); if (!bool1) { cout << ErrInfo << endl; return 0; } cout << Result << endl; */ //获取F10数据的类别 /*bool1 = TdxHq_Multi_GetCompanyInfoCategory(ConnectionID1,0, "000001", Result, ErrInfo); if (!bool1) { cout << ErrInfo << endl; return 0; } cout << Result << endl;*/ //获取F10数据的某类别的内容 /*bool1 = TdxHq_Multi_GetCompanyInfoContent(ConnectionID1,1, "600030", "600030.txt", 0, 16824, Result, ErrInfo); if (!bool1) { cout << ErrInfo << endl; return 0; } cout << Result << endl;*/ //获取除权除息信息 /*bool1 = TdxHq_Multi_GetXDXRInfo(ConnectionID1,0, "000001", Result, ErrInfo); if (!bool1) { cout << ErrInfo << endl; return 0; } cout << Result << endl;*/ //获取财务信息 /*bool1 = TdxHq_Multi_GetFinanceInfo(ConnectionID1,0, "000001", Result, ErrInfo); if (!bool1) { cout << ErrInfo << endl; return 0; } cout << Result << endl;*/ TdxHq_Multi_Disconnect(ConnectionID1); cout << "已经断开服务器"<> a; return 0; }