std::string g_orderSysID; // 全局变量保存OrderSysID; g_orderSysID = pOrder->OrderSysID; // 将获取到的OrderSysID保存到全局变量中 strcpy(t.OrderSysID, g_orderSysID.ctr()); //对应要撤报单的OrderSysID g_orderSysID.ctr()出错了
时间: 2024-01-19 14:02:54 浏览: 119
`g_orderSysID` 是一个 `std::string` 类型的变量,而 `t.OrderSysID` 可能是一个 `char` 数组类型的变量,因为你使用了 `strcpy` 函数。这两种类型的变量不能直接互相赋值或复制。
如果要将 `g_orderSysID` 中的字符串复制到 `t.OrderSysID` 中,可以使用 `std::string` 中提供的 `c_str()` 函数,它会返回一个指向 null 结尾的字符数组的指针。你可以将这个指针传递给 `strcpy` 函数,如下所示:
```
strcpy(t.OrderSysID, g_orderSysID.c_str());
```
这样就可以将 `g_orderSysID` 中的字符串复制到 `t.OrderSysID` 中了。
相关问题
bool OrderAction() { CThostFtdcInputOrderActionField t={0}; strcpy(t.BrokerID, "1000"); strcpy(t.ExchangeID, "SSE"); strcpy(t.OrderSysID, ) ; void OnRtnOrder(CThostFtdcOrderField *pOrder) { printf("OnRtnOrder\n"); std::cout << "OrderSysID: " << pOrder->OrderSysID << std::endl; } 如何在OrderAction()中的t.OrderSysID指向OnRtnOrder()中的OrderSysID
需要在OrderAction()函数中保存OrderSysID,然后在OnRtnOrder()函数中获取并使用它。可以通过定义一个全局变量来实现:
```
std::string g_orderSysID; // 全局变量保存OrderSysID
bool OrderAction() {
CThostFtdcInputOrderActionField t={0};
strcpy(t.BrokerID, "1000");
strcpy(t.ExchangeID, "SSE");
strcpy(t.OrderSysID, g_orderSysID.c_str()); // 将全局变量中保存的OrderSysID赋值给t.OrderSysID
// ... 其他代码
}
void OnRtnOrder(CThostFtdcOrderField *pOrder) {
printf("OnRtnOrder\n");
std::cout << "OrderSysID: " << pOrder->OrderSysID << std::endl;
g_orderSysID = pOrder->OrderSysID; // 将获取到的OrderSysID保存到全局变量中
// ... 其他代码
}
```
这样,在OrderAction()函数中就可以使用OnRtnOrder()函数中获取到的OrderSysID了。
阅读全文