以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  高级功能研发区  (http://222.73.7.161/bbs/list.asp?boardid=5)
----  编公式的时候怎么使用dll里的函数啊  (http://222.73.7.161/bbs/dispbbs.asp?boardid=5&id=11468)

--  作者:dyatpk
--  发布时间:2012/5/3 16:48:16
--  编公式的时候怎么使用dll里的函数啊

dlltest_C.dll放在FmlDLL里面了

就是个简单的计算a+b的函数就是不知道怎么用

#ifdef DLL1_API

#else

#define DLL1_API extern "C" __declspec(dllimport)

#endif

DLL1_API double add(double a,double b);

DLL1_API double subtract(double a,double b);

 

公式里我写

M1:MA(C,1);

M2:MA(C,2);

M:"dlltest_C@add"(M1,M2);

只显示M1和M2 哪里有错呢

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

[此贴子已经被作者于2012-5-3 16:50:58编辑过]

--  作者:董小球
--  发布时间:2012/5/3 17:29:55
--  
这个问题等待等待懂C开发的人员来看一下,时间可能稍长,请耐心等待
--  作者:王锋
--  发布时间:2012/5/3 18:20:57
--  
建议楼主仔细阅读金字塔安装目录下的 FmlDevelope.zip 压缩包,里面是DLL公式的完整范例,请仔细阅读范例文档内的.H头文件
--  作者:dyatpk
--  发布时间:2012/5/4 8:43:41
--  回复:(王锋)建议楼主仔细阅读金字塔安装目录下的 F...
你的意思是必须是按照你们那个规范写出来的dll才能在金字塔里面用是么? 如果我有一个外部获取的dll,里面有一个函数算一个极其复杂的数学问题,比如多元回归,而我又没有源代码,那样就没法在金字塔里面使用是么?
--  作者:王锋
--  发布时间:2012/5/4 8:52:04
--  

基本是的,但是也不完全是,你可以通过自定义的DLL中再调用你的那个数学算法DLL


--  作者:dyatpk
--  发布时间:2012/5/4 13:12:50
--  回复:(王锋)基本是的,但是也不完全是,你可以通过...
有道理 懂了
--  作者:dyatpk
--  发布时间:2012/5/10 11:16:56
--  
我在xp32位下,用vc6编译了你们自带的样例 在公式里写以下代码,公式无法显示 MA1:=MA(CLOSE,3); MA2:=MA(CLOSE,6); MA3:=MA(CLOSE,12); MA4:=MA(CLOSE,24); MYBBI: "STOCKFUNC@MYBBI"(MA1, MA2, MA3, MA4, 4); 在你们的电脑上编译出来的dll可以显示么
--  作者:admin
--  发布时间:2012/5/10 20:59:35
--  
编译完的DLL公式,要和你的所引用到的DLL公式都一起放倒FmlDLL目录中
--  作者:dyatpk
--  发布时间:2012/5/11 9:54:00
--  
以下是引用admin在2012-5-10 20:59:35的发言:
编译完的DLL公式,要和你的所引用到的DLL公式都一起放倒FmlDLL目录中

我把你们发的样例包 未作任何修改 直接用vc6编译出了dll 也放到了fmldll下面
问题是
"STOCKFUNC@MYMAVAR"(CLOSE-OPEN,5)
"STOCKFUNC@MYMACLOSE"(5)
都能正常显示
但是
MA1:=MA(CLOSE,3);
MA2:=MA(CLOSE,6);
MA3:=MA(CLOSE,12);
MA4:=MA(CLOSE,24);
MYBBI: "STOCKFUNC@MYBBI"(MA1, MA2, MA3, MA4, 4);
就没法正常显示
我的问题是你们自己编译出来的dll可以正常显示么
[此贴子已经被作者于2012-5-11 9:54:42编辑过]

--  作者:admin
--  发布时间:2012/5/11 12:56:46
--  
MYBBI: "STOCKFUNC@MYBBI"(MA1, MA2, MA3, MA4, 4);
这个问题查明是系统未将最后一个常数变量传递到DLL中,该问题下个版本会进行修复