以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 高级功能研发区 (http://www.weistock.com/bbs/list.asp?boardid=5) ---- DLL无法获取正确的参数 (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=154951) |
-- 作者:hulihutu9 -- 发布时间:2017/6/10 22:35:28 -- DLL无法获取正确的参数 同一个DLL(只有一个调用参数),在自编的技术指标公式中就能正确地获取参数,在自编的交易系统公式中就无法获取正确的参数。是不是系统的BUG? 调用方式都是: A:="TEST@TEST"(1); DLL代码中都是这样获取第一个参数: int condition = pData->m_pfParam1 && pData->m_nParam1Start < 0 ? (int)*pData->m_pfParam1 : 3; 金字塔也不允许调试,无法找到问题所在。 |
-- 作者:王锋 -- 发布时间:2017/6/11 15:30:29 -- //计算收盘价的均价,一个常数参数,表示计算周期 __declspec(dllexport) int WINAPI MYMACLOSE(CALCINFO* pData) |
-- 作者:hulihutu9 -- 发布时间:2017/6/11 21:43:57 -- 获取参数的C++代码肯定没错,DLL用于技术指标时能够正确地获取参数,即pData->m_pfParam1 && pData->m_nParam1Start < 0 这个条件为真。 但在交易系统中pData->m_pfParam1 && pData->m_nParam1Start < 0 这个条件始终为假。如果写成: int condition = pData->m_pfParam1 && pData->m_nParam1Start < 0 ? (int)*pData->m_pfParam1 : 3; condition的值永远为3; 如果写成: int condition = pData->m_pfParam1 && pData->m_nParam1Start < 0 ? (int)*pData->m_pfParam1 : 1; condition的值永远为1; |