typedef struct tagCALCINFO
{
const DWORD
m_dwSize;
//结构大小
const DWORD
m_dwVersion;
//调用软件版本(V2.10 : 0x210)
const DWORD
m_dwSerial;
//调用软件序列号
const char*
m_strStkLabel;
//股票代码
const BOOL
m_bIndex;
//大盘
const int
m_nNumData;
//数据数量(pData,pDataEx,pResultBuf数据数量)
const STKDATA*
m_pData;
//常规数据,注意:当m_nNumData==0时可能为 NULL
const STKDATAEx*
m_pDataEx;
//扩展数据,分笔成交买卖盘,注意:可能为 NULL
const int
m_nParam1Start;
//参数1有效起始位置
const float*
m_pfParam1;
//调用参数1
const float*
m_pfParam2;
//调用参数2
const float*
m_pfParam3;
//调用参数3
const float*
m_pfParam4;
//调用参数4
//以下是我增加的部分,其他所有都没有变化
const float*
m_pfParam5;
//调用参数4
const float*
m_pfParam6;
//调用参数4
const float*
m_pfParam7;
//调用参数4
const float*
m_pfParam8;
//调用参数4
.cpp文件也没变,可是不出结果了?请问老师大概是什么问题?
系统自带格式请不要更改定义,否则将造成内存访问越界和数据错乱等问题
请问我要调用多个序列怎么办?按示例 MYBBI(CALCINFO* pData),我只增加了一个序列,也不对?下面是修改的部分,只增加了一个序列,其他都不变。红色为增加部分。
__declspec(dllexport) int WINAPI MY8MA(CALCINFO* pData)
{
if ( pData->m_pCalcParam[0].m_nParamStart >= 0 &&
pData->m_pCalcParam[1].m_nParamStart >= 0 &&
pData->m_pCalcParam[2].m_nParamStart >= 0 &&
pData->m_pCalcParam[3].m_nParamStart >= 0 &&
pData->m_pCalcParam[4].m_nParamStart >= 0 )
//4个序列都含有效数值
{
//计算返回的序列的第一个有效值位置
int nFirst = pData->m_pCalcParam[4].m_nParamStart;
//已知返回的序列的第一个有效值位置与第4个序列一致
//若不知,则
/*
int nFirst = pData->m_pCalcParam[0].m_nParamStart;
if ( nFirst < pData->m_pCalcParam[1].m_nParamStart )
nFirst = pData->m_pCalcParam[1].m_nParamStart;
if ( nFirst < pData->m_pCalcParam[2].m_nParamStart )
nFirst = pData->m_pCalcParam[2].m_nParamStart;
if ( nFirst < pData->m_pCalcParam[3].m_nParamStart )
nFirst = pData->m_pCalcParam[3].m_nParamStart;
*/
const float* pValue1 = pData->m_pCalcParam[0].m_pfParam;
const float* pValue2 = pData->m_pCalcParam[1].m_pfParam;
const float* pValue3 = pData->m_pCalcParam[2].m_pfParam;
const float* pValue4 = pData->m_pCalcParam[3].m_pfParam;
const float* pValue5 = pData->m_pCalcParam[4].m_pfParam;
int nNum = (int)(pData->m_pCalcParam[5].m_fParam);
//实际上该例中已知nNum=4,在此用于说明数值参数的用法
for( int i = nFirst; i < pData->m_nNumData; i++ )
{
pData->m_pResultBuf[i] =
(pValue1[i] + pValue2[i] + pValue3[i] + pValue4[i]+pValue5[i])/nNum;
}
return nFirst;
}
return -1;
}
调用是
MYBBI: "STOCKFUNC@MY8MA"(MA1, MA2, MA3, MA4, MA4,5);