以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 高级功能研发区 (http://222.73.7.161/bbs/list.asp?boardid=5) ---- 为什么我在示例的.h中增加了几个参数,DLL运行出现问题,不显示结果 (http://222.73.7.161/bbs/dispbbs.asp?boardid=5&id=181885) |
-- 作者:maodun101 -- 发布时间:2020/8/25 13:09:59 -- 为什么我在示例的.h中增加了几个参数,DLL运行出现问题,不显示结果 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文件也没变,可是不出结果了?请问老师大概是什么问题?
|
-- 作者:无为剑 -- 发布时间:2020/8/25 15:46:07 -- 系统自带格式请不要更改定义,否则将造成内存访问越界和数据错乱等问题 |
-- 作者:maodun101 -- 发布时间:2020/8/25 15:54:03 -- 请问我要调用多个序列怎么办?按示例 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); |
-- 作者:maodun101 -- 发布时间:2020/8/25 16:35:23 -- 我明白了 |