以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [求助]调用dll,传递函数参数的问题  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=9399)

--  作者:kekegeneral
--  发布时间:2011/12/15 16:30:09
--  [求助]调用dll,传递函数参数的问题

当调用dll函数,传递的函数参数是多个序列变量 和一个常量,序列变量可以正确的取到值,但不知道为什么常量的取值总是遇到异常。

 

比如第四个参数是常数

int temp= (int)(*(pData->m_pCalcParam[3].m_pfParam));

程序执行到这里就会退出

 

打log发现 pData->m_nNumParam是正确的。pData->m_pCalcParam[i].m_nParamStart的值也是正确的


--  作者:kekegeneral
--  发布时间:2011/12/15 16:33:36
--  
请版主帮忙看看,大家有遇到这个问题的没?
--  作者:admin
--  发布时间:2011/12/15 16:45:40
--  

你用VC6编译再看看


--  作者:kekegeneral
--  发布时间:2011/12/16 9:43:08
--  
以下是引用admin在2011-12-15 16:45:40的发言:

你用VC6编译再看看

用VC6 重新编译了下,还是有这个问题,我的金字塔软件版本是V2.75
另外VC6 也打了sp5的补丁。

具体一些就是 m_pCalcParam 不支持常数参数 :

 

typedef struct tagCALCINFO
{

.....................

 const CALCPARAM* m_pCalcParam;   // 调用参数数组

...................

} CALCINFO;