当调用dll函数,传递的函数参数是多个序列变量 和一个常量,序列变量可以正确的取到值,但不知道为什么常量的取值总是遇到异常。
比如第四个参数是常数
int temp= (int)(*(pData->m_pCalcParam[3].m_pfParam));
程序执行到这里就会退出
打log发现 pData->m_nNumParam是正确的。pData->m_pCalcParam[i].m_nParamStart的值也是正确的
你用VC6编译再看看
你用VC6编译再看看
用VC6 重新编译了下,还是有这个问题,我的金字塔软件版本是V2.75
另外VC6 也打了sp5的补丁。
具体一些就是 m_pCalcParam 不支持常数参数 :
typedef struct tagCALCINFO
{
.....................
const CALCPARAM* m_pCalcParam; // 调用参数数组
...................
} CALCINFO;