我补充一下,主K线图下面的两个附图指标就是我那个调用dll的指标DLLT。
第二个附图指标,就是一行红柱子的那个是正常的。第一个附图指标本来也是这样子,但是双击左侧“管理面板”中的其他指标后,在切换会这个DLLT指标,就没显示了,还提示“第5行 错误:解释错误”,其实我第5行是这一句:中轨:=MA(CLOSE,3)/100; 者不可能有错误的。
另外我dll的函数中为了检查错误,现在里面不含任何逻辑,直接给*pData->m_pResultBuf 赋了一个常数值就返回了,不会有错误。我也留意到这是运行在 逐K模式 的。代码也是针对逐K模式来写的
出现解析错误,通常都是你的DLL中出现了内存越界,导致异常终止.
建议你还是检查一下你的DLL中,指针的有关操作吧
__declspec(dllexport) int DKFUNC(CALCINFO* pData)
{
//运行在逐K模式下
*pData->m_pResultBuf = 88;
return 1;
}
__declspec(dllexport) int DKFUNC(CALCINFO* pData)
{
//运行在逐K模式下
*pData->m_pResultBuf = 88;
return 1;
}
这就是其中一个函数的代码,另外一个也是一样的,只是返回的是另一个常数。
我已经把代码简化成这样了,依然是第一个运行指标正常,切换到其他指标,在切回来就不正常。
如果代码有问题的话,那第一次运行就会不正常吧
这个情况的原因很多的,比如你的代码是不是有什么资源没释放等等.
建议你使用金字塔自带的DLL公式范例,运行不经修改的范例看看能否问题还是出现,使用排除法逐步排查问题
软件带的demo FmlDevelope是针对序列模式来写的,我用的K线模式,demo里只有一段代码,而且还屏蔽了。
我这个工程,除了函数里面的两行代码是我自己改的,然后在头文件里面加了函数的生命。其余都是copy的FmlDevelope,啥都没加,而且我自己写的两行代码也贴出来了
不会存在其他什么资源没释放的原因了
我电脑系统是win8 64位系统,用的是vs2012
自带的范例有2种模式的范例,建议你仔细好好从头看看
我写的代码都发出来了,就两句话。除了这两行,就头文件加了一个声明,runmode改了一下返回值。啥都没有了
其余都是你们demo代码。
要不你们把我这两句代码整一个k线模式的dll工程吧,然后让客服通过qq发给我。应该不需要超过2分钟工作量吧,也让我对比一下哪里出的问题