这一句是为了控制啥?没看出有什么作用 static bool ORDER_ACTION_SENT = false; //是否发送了报单 void CTraderSpi::ReqOrderAction(CThostFtdcOrderField *pOrder) { static bool ORDER_ACTION_SENT = false; //是否发送了报单 if (ORDER_ACTION_SENT) return; CThostFtdcInputOrderActionField req; memset(&req, 0, sizeof(req)); ///经纪公司代码 strcpy(req.BrokerID, pOrder->BrokerID); ///投资者代码 strcpy(req.InvestorID, pOrder->InvestorID); ///报单操作引用 // TThostFtdcOrderActionRefType OrderActionRef; ///报单引用 strcpy(req.OrderRef, pOrder->OrderRef); ///请求编号 // TThostFtdcRequestIDType RequestID; ///前置编号 req.FrontID = FRONT_ID; ///会话编号 req.SessionID = SESSION_ID; ///交易所代码 // TThostFtdcExchangeIDType ExchangeID; ///报单编号 // TThostFtdcOrderSysIDType OrderSysID; ///操作标志 req.ActionFlag = THOST_FTDC_AF_Delete; ///价格 // TThostFtdcPriceType LimitPrice; ///数量变化 // TThostFtdcVolumeType VolumeChange; ///用户代码 // TThostFtdcUserIDType UserID; ///合约代码 strcpy(req.InstrumentID, pOrder->InstrumentID); int iResult = pUserApi->ReqOrderAction(&req, ++iRequestID); cerr << "--->>> 报单操作请求: " << iResult << ((iResult == 0) ? ", 成功" : ", 失败") << endl; ORDER_ACTION_SENT = true; }
对这个方法/函数来说,这个静态变量好像控制不了什么东西,因为一调用就又把它设成false了,结果每次都发送报单。 void CTraderSpi::ReqOrderAction(CThostFtdcOrderField *pOrder) { static bool ORDER_ACTION_SENT = false; //是否发送了报单 if (ORDER_ACTION_SENT) return; ......