您现在的位置:程序化交易>> 期货公式>> 金字塔等>> 其他期货软件知识>>正文内容

序列模式问题 [金字塔]

  • 咨询内容:

    我的公式运行在序列模式下, 通过调试发现序列变量下标为1的变量一直无法使用, 而且在调试模式下一直显示为"空", 而不想其他下标预设值显示为0.000, 请问是何原因?

     

  • 金字塔客服: 代码贴过来看看

     

  • 用户回复:

    找到原因了,  不论在DLL中对pData->m_pResultBuf[0]如何赋值,

    只要return 1就会造成序列变量下标1中的内容为空,

    如果return 0就不会出现问题,序列变量下标1中的内容为dll中的赋值内容。

    请问,对于dll的返回值,具体包括哪些?有何意义?

     

    另外,再请教个问题:序列模式是否无法使用DLL中定义的全局变量,每次调用时全局变量的内容好像又回到初始值了?

     

  • 网友回复:

    返回的值表示的是返回的数组的有效下标,你返回1当然表示从第二个数组才有效的了。

    你可能根本就没有仔细看过DLL公式的开发文档,这里给你摘抄部分

     

    ////////////////////////////////////////////////////
    /* 函数输出

    __declspec(dllexport) int xxxxxxxx(CALCINFO* pData);

    1.函数名称需全部大写.
    2.函数必须以上述形式声明,请用实际函数名称替代xxxxxxxx;
     对于C++程序还需包括在 extern "C" {   } 括号中.
    3.函数计算结果用pData->m_pResultBuf带回.
    4.函数返回-1表示错误或全部数据无效,对于序列模式返回第一个有效值位置,即:
     m_pResultBuf[返回值] -- m_pResultBuf[m_nNumData-1]间为有效值.逐K线模式返回值大于等于0均表示成功

    */

     

     

    DLL的全局变量你没描述清楚,如果猜的没错的话,你在 工具菜单-》选项-》勾选“DLL加载内存驻留模式”即可

     

  • 网友回复: 不好意思呀,太久没看资料,全忘了。

【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容