以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 高级功能研发区 (http://222.73.7.161/bbs/list.asp?boardid=5) ---- 序列模式问题 (http://222.73.7.161/bbs/dispbbs.asp?boardid=5&id=10616) |
-- 作者:adam_wang -- 发布时间:2012/3/17 14:52:31 -- 序列模式问题 我的公式运行在序列模式下, 通过调试发现序列变量下标为1的变量一直无法使用, 而且在调试模式下一直显示为"空", 而不想其他下标预设值显示为0.000, 请问是何原因? |
-- 作者:王锋 -- 发布时间:2012/3/17 16:10:07 -- 代码贴过来看看 |
-- 作者:adam_wang -- 发布时间:2012/3/17 17:22:09 -- 找到原因了, 不论在DLL中对pData->m_pResultBuf[0]如何赋值, 只要return 1就会造成序列变量下标1中的内容为空, 如果return 0就不会出现问题,序列变量下标1中的内容为dll中的赋值内容。 请问,对于dll的返回值,具体包括哪些?有何意义?
另外,再请教个问题:序列模式是否无法使用DLL中定义的全局变量,每次调用时全局变量的内容好像又回到初始值了? |
-- 作者:王锋 -- 发布时间:2012/3/17 18:26:37 -- 返回的值表示的是返回的数组的有效下标,你返回1当然表示从第二个数组才有效的了。 你可能根本就没有仔细看过DLL公式的开发文档,这里给你摘抄部分
//////////////////////////////////////////////////// __declspec(dllexport) int xxxxxxxx(CALCINFO* pData); 1.函数名称需全部大写. */
DLL的全局变量你没描述清楚,如果猜的没错的话,你在 工具菜单-》选项-》勾选“DLL加载内存驻留模式”即可 |
-- 作者:adam_wang -- 发布时间:2012/3/17 19:43:59 -- 不好意思呀,太久没看资料,全忘了。 |
-- 作者:王锋 -- 发布时间:2012/3/18 20:17:12 -- 不要去擅自改动tagCALCINFO的结构字段! DLL公式只能有一个返回值,就是m_pResultBuf; 定义的,你擅自增加了字段,将导致灾难性后果,引起软件崩溃死机 |