吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 450|回复: 9
收起左侧

[求助] C++中函数跨.cpp如何调用?

[复制链接]
jtwc 发表于 2024-1-14 13:28
本帖最后由 jtwc 于 2024-1-14 14:55 编辑

各位老师,C++中函数跨.cpp如何调用?1个c++文件中含CustomTradeSpi.cpp源码函数:void CustomTradeSpi::OnRspQryInvestorPosition(CThostFtdcInvestorPositionField* pInvestorPosition, CThostFtdcRspInfoField* pRspInfo, int nRequestID,bool bIsLast)
{
        if (!isErrorRspInfo(pRspInfo))
        {
                std::cout << "=====查询投资者持仓成功=====" << std::endl;
                if (pInvestorPosition)
                {
                        std::cout << "合约代码: " << pInvestorPosition->InstrumentID << std::endl;
                        std::cout << "开仓价格: " << pInvestorPosition->OpenAmount << std::endl;
                        std::cout << "开仓量: " << pInvestorPosition->OpenVolume << std::endl;
                        std::cout << "开仓方向: " << pInvestorPosition->PosiDirection << std::endl;
                        std::cout << "占用保证金:" << pInvestorPosition->UseMargin << std::endl;

                }
                else
                        std::cout << "----->该合约未持仓" << std::endl;
               
                        // 策略交易
                std::cout << "=====开始进入策略交易=====" << std::endl;
                       
        }
}如何在main.cpp中调用CustomTradeSpi::OnRspQryInvestorPosition(CThostFtdcInvestorPositionField* pInvestorPosition, CThostFtdcRspInfoField* pRspInfo, int nRequestID,bool bIsLast)
{
        if (!isErrorRspInfo(pRspInfo))
        {
                std::cout << "=====查询投资者持仓成功=====" << std::endl;
                if (pInvestorPosition)
                {
                        std::cout << "合约代码: " << pInvestorPosition->InstrumentID << std::endl;
                        std::cout << "开仓价格: " << pInvestorPosition->OpenAmount << std::endl;
                        std::cout << "开仓量: " << pInvestorPosition->OpenVolume << std::endl;
                        std::cout << "开仓方向: " << pInvestorPosition->PosiDirection << std::endl;
                        std::cout << "占用保证金:" << pInvestorPosition->UseMargin << std::endl;

                }
                else
                        std::cout << "----->该合约未持仓" << std::endl;
               
                        // 策略交易
                std::cout << "=====开始进入策略交易=====" << std::endl;
                       
        }
}

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

bester 发表于 2024-1-14 13:34
1.extern 关键字
2.CustomTradeSpi.cpp加载一个头文件A.h,将函数声明在头文件 main.cpp 包含该头文件
董督秀 发表于 2024-1-14 13:54
其实还有第三种方法,把重要的功能函数编译成lib库,库的头文件添加声明。在main.cpp引用该库的头文件,把lib库文件放在main.cpp目录下,就能直接调用这个功能函数。
qqLinux 发表于 2024-1-14 14:22
分编译期和运行期,
1。编译期在编译命令行或者项目管理上加上.cpp。并且在调用前声明其形式
2。运行期需要编译成动态库,利用平台特性的动态加载动态库加载到程序当中,再利用平台api搜索函数起始地址,使用指针调用调用,形如"p()"。该方式一般要求名称需要正确,需要参考编译器编译函数名称规则。
KaneHiroshi 发表于 2024-1-14 15:23
不如说不跨cpp才是不正常的,正常来说都是定义和调用分开的
雪流星 发表于 2024-1-14 15:54
写在头文件,或者lib库。.cpp .c是无法跨的
michaelgao 发表于 2024-1-14 21:05
直接include cpp文件也是可以的,编译器一般会项目当前目录、系统目录查找include的文件名文件;然后在包含的文件里,查找严格匹配的函数(函数名、参数类型等)。 文件名的后缀是.h ,还是.cpp并不重要,跟人名一样,只是个符号而已。
zhanglyl 发表于 2024-1-15 09:36
头文件了解一下。关于CPP的概念需要巩固
vtor 发表于 2024-1-17 09:47
就是变量跨文件啊,extern就好啊
zishen 发表于 2024-1-17 12:52
写在头文件呀
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2024-5-12 06:18

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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