吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 767|回复: 15
收起左侧

[求助] C++不同的源文件如何调用函数中的数值?

[复制链接]
jtwc 发表于 2023-5-28 12:13
本帖最后由 jtwc 于 2023-5-28 12:35 编辑

各位老师,C++不同的源文件中如何调用函数中的数值?谢谢了
案例:
CustomMdSpi.cpp中有函数:
void CustomMdSpi::OnRtnDepthMarketData(CThostFtdcDepthMarketDataField* pDepthMarketData)
{
        pDepthMarketData->LastPrice;
}

如何在StrategyTrade.cpp调用pDepthMarketData->LastPrice;的值
void StrategyCheckAndTrade(TThostFtdcInstrumentIDType instrumentID, CustomTradeSpi *customTradeSpi, CustomMdSpi *customMdSpi)
{
double v_lastPrice = pDepthMarketData->LastPrice;
}

出错         29        IntelliSense:  未定义标识符 "pDepthMarketData"

免费评分

参与人数 1热心值 +1 收起 理由
shengruqing + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

boy7928 发表于 2023-5-28 13:49
全局变量可解
 楼主| jtwc 发表于 2023-5-28 13:51
Dlan 发表于 2023-5-28 14:21
华鼠 发表于 2023-5-28 14:21
要在不同的源文件中调用函数中的数值,你需要进行以下步骤:

1、在CustomMdSpi.cpp中定义一个全局变量来保存pDepthMarketData->LastPrice的值。在函数定义之前声明一个全局变量,并在函数内部将数值赋给该变量。例如:


[C++] 纯文本查看 复制代码
// CustomMdSpi.cpp
double g_lastPrice = 0.0; // 全局变量

void CustomMdSpi::OnRtnDepthMarketData(CThostFtdcDepthMarketDataField* pDepthMarketData) {
    g_lastPrice = pDepthMarketData->LastPrice;
}

2、在StrategyTrade.cpp中使用extern关键字声明这个全局变量,并将其用于需要的地方。例如:

[C++] 纯文本查看 复制代码
// StrategyTrade.cpp
extern double g_lastPrice; // 声明全局变量

void StrategyCheckAndTrade(TThostFtdcInstrumentIDType instrumentID, CustomTradeSpi *customTradeSpi, CustomMdSpi *customMdSpi) {
    double v_lastPrice = g_lastPrice;
    // 使用v_lastPrice进行后续操作
}

通过这种方式,你可以在不同的源文件中共享并使用函数中的数值。请确保在使用该数值之前,CustomMdSpi.cpp中的函数已经被调用,以确保全局变量中的数值是最新的。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
jtwc + 1 + 1 我很赞同!

查看全部评分

 楼主| jtwc 发表于 2023-5-28 14:37
Dlan 发表于 2023-5-28 14:21
单例模式
全局变量
都可以

谢谢老师
 楼主| jtwc 发表于 2023-5-28 16:24
华鼠 发表于 2023-5-28 14:21
要在不同的源文件中调用函数中的数值,你需要进行以下步骤:

1、在CustomMdSpi.cpp中定义一个全局变量来 ...

谢谢老师,非常正确
 楼主| jtwc 发表于 2023-5-28 16:43
华鼠 发表于 2023-5-28 14:21
要在不同的源文件中调用函数中的数值,你需要进行以下步骤:

1、在CustomMdSpi.cpp中定义一个全局变量来 ...

老师,CustomMdSpi.cpp中有函数:
void CustomMdSpi::OnRtnDepthMarketData(CThostFtdcDepthMarketDataField* pDepthMarketData)
{
        pDepthMarketData->LastPrice;
}
如何在StrategyTrade.cpp调用CustomMdSpi::OnRtnDepthMarketData这个函数呢?谢谢了
华鼠 发表于 2023-5-28 18:21
要在StrategyTrade.cpp中调用CustomMdSpi类的OnRtnDepthMarketData函数,你需要先创建一个CustomMdSpi对象,然后通过该对象调用函数。

以下是一个示例代码:


[C++] 纯文本查看 复制代码
// StrategyTrade.cpp
#include "CustomMdSpi.h" // 包含CustomMdSpi类的头文件

void StrategyCheckAndTrade(TThostFtdcInstrumentIDType instrumentID, CustomTradeSpi *customTradeSpi, CustomMdSpi *customMdSpi) {
    CustomMdSpi mdSpi; // 创建CustomMdSpi对象

    // 调用CustomMdSpi对象的OnRtnDepthMarketData函数
    CThostFtdcDepthMarketDataField depthMarketData;
    mdSpi.OnRtnDepthMarketData(&depthMarketData);
    // 在此可以处理depthMarketData中的数据或者执行其他操作
}


在上面的示例中,我们包含了CustomMdSpi类的头文件,并在StrategyCheckAndTrade函数内创建了CustomMdSpi对象mdSpi。然后,我们可以通过mdSpi对象调用OnRtnDepthMarketData函数,并传递一个CThostFtdcDepthMarketDataField对象的指针作为参数。

请注意,在使用此方法之前,你需要确保CustomMdSpi类的实现已经被编译并与StrategyTrade.cpp链接在一起。还要确保你正确地包含了CustomMdSpi类的头文件,并在编译时将CustomMdSpi.cpp文件添加到你的项目中。
 楼主| jtwc 发表于 2023-5-28 18:32
华鼠 发表于 2023-5-28 18:21
要在StrategyTrade.cpp中调用CustomMdSpi类的OnRtnDepthMarketData函数,你需要先创建一个CustomMdSpi对象 ...

谢谢老师,我试试
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 21:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表