CTP 开发随笔

API 版本升级

提示

第一步

从官网下载 v6.6.1_P1_20210406 版本的 API,然后解压并将 .h 头文件和 .DLL 文件拷贝到 C/C++ 项目里;也就是说,将原有的 API 文件替换掉即可。

第二步

v6.6.1_P1 相比 v6.3.15,其中一个不同的地方,就是函数里的结构体名称更改了。因此需要在 IDE 里全局将 CThostFtdcQueryMaxOrderVolumeField 替换为 CThostFtdcQryMaxOrderVolumeField,同时将 ReqQueryMaxOrderVolume 替换为 ReqQryMaxOrderVolume

第三步

由于 v6.6.1_P1 版本新增了一些函数,若项目的代码是基于官方的 Demo 进行二次开发的,那么则需要在下述的 C++ 源文件末尾追加以下代码:

  • traderApi.h
1
2
3
4
5
6
7
8
9
10
11
///请求查询分类合约
virtual int ReqQryClassifiedInstrument(CThostFtdcQryClassifiedInstrumentField *pQryClassifiedInstrument, int nRequestID);

///请求组合优惠比例
virtual int ReqQryCombPromotionParam(CThostFtdcQryCombPromotionParamField *pQryCombPromotionParam, int nRequestID);

///投资者风险结算持仓查询
virtual int ReqQryRiskSettleInvstPosition(CThostFtdcQryRiskSettleInvstPositionField *pQryRiskSettleInvstPosition, int nRequestID);

///风险结算产品查询
virtual int ReqQryRiskSettleProductStatus(CThostFtdcQryRiskSettleProductStatusField *pQryRiskSettleProductStatus, int nRequestID);
  • traderApi.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int CTraderApi::ReqQryClassifiedInstrument(CThostFtdcQryClassifiedInstrumentField *pQryClassifiedInstrument, int nRequestID) {

};

int CTraderApi::ReqQryCombPromotionParam(CThostFtdcQryCombPromotionParamField *pQryCombPromotionParam, int nRequestID) {

};

int CTraderApi::ReqQryRiskSettleInvstPosition(CThostFtdcQryRiskSettleInvstPositionField *pQryRiskSettleInvstPosition, int nRequestID) {

};

int CTraderApi::ReqQryRiskSettleProductStatus(CThostFtdcQryRiskSettleProductStatusField *pQryRiskSettleProductStatus, int nRequestID) {

};