欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 指标里面调用了dll,为什么刚开始正常,后来双击一次,就显示解释错误。

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有4801人关注过本帖树形打印复制链接

主题:指标里面调用了dll,为什么刚开始正常,后来双击一次,就显示解释错误。

帅哥哟,离线,有人找我吗?
monarch
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:44 积分:0 威望:0 精华:0 注册:2014/11/14 11:04:39
  发帖心情 Post By:2014/11/25 14:40:30 [显示全部帖子]

我补充一下,主K线图下面的两个附图指标就是我那个调用dll的指标DLLT。
第二个附图指标,就是一行红柱子的那个是正常的。第一个附图指标本来也是这样子,但是双击左侧“管理面板”中的其他指标后,在切换会这个DLLT指标,就没显示了,还提示“第5行 错误:解释错误”,其实我第5行是这一句:中轨:=MA(CLOSE,3)/100;  者不可能有错误的。
另外我dll的函数中为了检查错误,现在里面不含任何逻辑,直接给*pData->m_pResultBuf 赋了一个常数值就返回了,不会有错误。我也留意到这是运行在 逐K模式 的。代码也是针对逐K模式来写的

 回到顶部
帅哥哟,离线,有人找我吗?
monarch
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:44 积分:0 威望:0 精华:0 注册:2014/11/14 11:04:39
  发帖心情 Post By:2014/11/26 14:10:37 [显示全部帖子]

__declspec(dllexport) int DKFUNC(CALCINFO* pData)
{
//运行在逐K模式下

*pData->m_pResultBuf = 88;

return 1;

}

 回到顶部
帅哥哟,离线,有人找我吗?
monarch
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:44 积分:0 威望:0 精华:0 注册:2014/11/14 11:04:39
  发帖心情 Post By:2014/11/26 14:16:09 [显示全部帖子]

__declspec(dllexport) int DKFUNC(CALCINFO* pData)
{
//运行在逐K模式下

*pData->m_pResultBuf = 88;

return 1;

}

这就是其中一个函数的代码,另外一个也是一样的,只是返回的是另一个常数。

我已经把代码简化成这样了,依然是第一个运行指标正常,切换到其他指标,在切回来就不正常。
如果代码有问题的话,那第一次运行就会不正常吧

 回到顶部
帅哥哟,离线,有人找我吗?
monarch
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:44 积分:0 威望:0 精华:0 注册:2014/11/14 11:04:39
  发帖心情 Post By:2014/11/26 15:03:14 [显示全部帖子]

在补充一点,这个现象只出现在指标公式中。
同样的dll用在交易系统中就是正常的

 回到顶部
帅哥哟,离线,有人找我吗?
monarch
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:44 积分:0 威望:0 精华:0 注册:2014/11/14 11:04:39
  发帖心情 Post By:2014/11/26 17:15:50 [显示全部帖子]

软件带的demo    FmlDevelope是针对序列模式来写的,我用的K线模式,demo里只有一段代码,而且还屏蔽了。
我这个工程,除了函数里面的两行代码是我自己改的,然后在头文件里面加了函数的生命。其余都是copy的FmlDevelope,啥都没加,而且我自己写的两行代码也贴出来了
不会存在其他什么资源没释放的原因了
我电脑系统是win8  64位系统,用的是vs2012


 回到顶部
帅哥哟,离线,有人找我吗?
monarch
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:44 积分:0 威望:0 精华:0 注册:2014/11/14 11:04:39
  发帖心情 Post By:2014/11/26 18:54:26 [显示全部帖子]

我写的代码都发出来了,就两句话。除了这两行,就头文件加了一个声明,runmode改了一下返回值。啥都没有了
其余都是你们demo代码。

要不你们把我这两句代码整一个k线模式的dll工程吧,然后让客服通过qq发给我。应该不需要超过2分钟工作量吧,也让我对比一下哪里出的问题



 回到顶部
帅哥哟,离线,有人找我吗?
monarch
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:44 积分:0 威望:0 精华:0 注册:2014/11/14 11:04:39
  发帖心情 Post By:2014/11/27 10:17:13 [显示全部帖子]

我自己试了一个,dll是没问题的。
问题在于  逐K模式下的公式指标,如果调用了dll函数,同时前面有ma之类的语句,就会出问题。

帖子中的指标语句,把ma的两句注释掉,就没有问题了。问题是,我们需要这些语句,下面的公式就可以正常运行了

DK05:=5;
DK15:=15;
DK30:=30;
DK60:=60;
//中轨:=MA(CLOSE,3)/100;
//JBAT:=MA(CLOSE,3)/200;
SNN0:=6;
SNN1:=7;
SNN2:=8;
SNN3:=9;
SNN4:=10;
DNN:=11;
//这些参数都是不必要的,现在dll里面只是测试代码了,没读参数,直接返回值的
多空:"LZYE@DKFUNC"(PERIOD,DK05,DK15,DK30,DK60),COLORRED;
量能:"LZYE@DNFUNC"(PERIOD,SNN0,SNN1,SNN2,SNN3,SNN4),COLORSTICK;

 回到顶部
帅哥哟,离线,有人找我吗?
monarch
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:44 积分:0 威望:0 精华:0 注册:2014/11/14 11:04:39
  发帖心情 Post By:2014/11/27 10:27:09 [显示全部帖子]

群里有哥们反应,交易系统调用dll不会出现这个现象。
而且我在主图指标中也不会出现这个现象,只有副图指标才有。

 回到顶部
帅哥哟,离线,有人找我吗?
monarch
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:44 积分:0 威望:0 精华:0 注册:2014/11/14 11:04:39
  发帖心情 Post By:2014/11/27 10:36:42 [显示全部帖子]

这个工程我上传了,请查看

我用的是vs2012
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:lzye.rar


 回到顶部