以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  StockFunc程序中插入测试函数得不到返回值  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=160662)

--  作者:lfiwhr
--  发布时间:2017/12/26 9:34:57
--  StockFunc程序中插入测试函数得不到返回值
StockFunc程序中插入以下测试函数
__declspec(dllexport) float WINAPI MYTEST(CALCINFO* pData)
{
return 3999.999999;
}
金字塔公式中调用语句为
fff:="STOCKFUNC@MYTEST"(30);
输出fff:fff,linethick0, NOAXIS;
得不到返回值。fff未发生赋值。请高手赐教。

--  作者:yukizzc
--  发布时间:2017/12/26 9:51:25
--  

pData->m_pResultBuf[i] = fTotal/nPeriod; //平均

请看下.h头文件,了解下返回值的使用方法

/* 函数输出

__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均表示成功


--  作者:lfiwhr
--  发布时间:2017/12/26 10:14:21
--  
按照例子函数"STOCKFUNC@MYMACLOSE"(5)调用后金字塔怎么去取pData->m_pResultBuf[i]里的数据呢?
--  作者:lfiwhr
--  发布时间:2017/12/26 10:57:34
--  
是不是说不能在PEL公式里调用DLL的pData->m_pResultBuf[i]参数,相关的操作在DLL里完成,函数只能返回一些整型数呢。
--  作者:yukizzc
--  发布时间:2017/12/26 12:36:39
--  

pData->m_pResultBuf[i]这个就是相当于你一楼的return了

然后pel你直接这么使用就好了"STOCKFUNC@MYMACLOSE"(5)

 

 

话说demo里不是有现成的计算均价的例子吗?您有用过吗,里面肯定有这个例子的

pData->m_pResultBuf[i] = fTotal/nPeriod; //平均

 

这个就是返回值了