C++中函数跨.cpp如何调用?
本帖最后由 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;
}
} 1.extern 关键字
2.CustomTradeSpi.cpp加载一个头文件A.h,将函数声明在头文件 main.cpp 包含该头文件 其实还有第三种方法,把重要的功能函数编译成lib库,库的头文件添加声明。在main.cpp引用该库的头文件,把lib库文件放在main.cpp目录下,就能直接调用这个功能函数。 分编译期和运行期,
1。编译期在编译命令行或者项目管理上加上.cpp。并且在调用前声明其形式
2。运行期需要编译成动态库,利用平台特性的动态加载动态库加载到程序当中,再利用平台api搜索函数起始地址,使用指针调用调用,形如"p()"。该方式一般要求名称需要正确,需要参考编译器编译函数名称规则。
不如说不跨cpp才是不正常的,正常来说都是定义和调用分开的 写在头文件,或者lib库。.cpp .c是无法跨的 直接include cpp文件也是可以的,编译器一般会项目当前目录、系统目录查找include的文件名文件;然后在包含的文件里,查找严格匹配的函数(函数名、参数类型等)。 文件名的后缀是.h ,还是.cpp并不重要,跟人名一样,只是个符号而已。 头文件了解一下。关于CPP的概念需要巩固 就是变量跨文件啊,extern就好啊 写在头文件呀
页:
[1]