参数怎么传递啊? 公式系统里面是不是一直有一个CALCINFO结构的对象存在呀 ? 最好给个代码范例,谢谢!!
Fmldevelope就是范例,里面包含多个参数传递的算法了!
请仔细看看.H头文件的描述
大哥,很感谢您今天放假还在这上面回答问题。
H头文件里真没写,我看得很仔细。我不会什么都没看就来上面噼里啪啦乱问一通的.
H文件里是这么写的
“3.调用时在公式编辑器中书写"动态库名称@函数名称"(参数表)即可,例如下面函数可以写为"STOCKFUNC@MYMACLOSE"(5) ”
然后H文件里该函数声明是
__declspec(dllexport) int WINAPI MYMACLOSE(CALCINFO* pData);
这两个参数类型的声明明显不符合嘛!?
所以是不是公式系统里有个CALCINFO对象,比如名为abc,
那么调用时 MYMACLOSE(&abc); 这样就可以了嘛?
你先把范例编译一下,建议用VC6,然后放到指定目录,然后再按照教程上的范例,搞到公式系统里,然后再看看你应该就明白了
我也希望做点贡献,让其他人也明白一下,是不是我们调用的时候只负责传递CALCINFO结构里的
const float* m_pfParam1; //调用参数1
const float* m_pfParam2; //调用参数2
const float* m_pfParam3; //调用参数3
const float* m_pfParam4; //调用参数
这四个参数,其他参数由系统自动传递给被调用的函数? 是把这些参数指针给弄到被调用函数的栈里吧 ? 你们的技术能做到这样也真是太牛B了。一般高手都不爱写注释指南之类的 ,难怪,唉。
我说的对不 ?
我看明白一些了,但还有个问题,就是比如调用 "STOCKFUNC@MYMACLOSE"(CLOSE), 传递参数的时候,被调用函数怎么知道传递的是const float* m_pfParam1的参数 还是 const CALCPARAM* m_pCalcParam; // 调用参数数组 的参数呢 ???
参考这个帖子 http://www.weistock.com/bbs/dispbbs.asp?boardid=5&Id=30931
上面有可以调试的步骤,记得要下载 2.962版,因为只有这个版本才支持调试。
同过调试,你在PEL公式中再调用参数的时候,就能很容易的看到C++的结构是如何传递参数的了
晕死....哭死...大哥你有空回帖没空多写几个字哦 ...
是不是STOCKFUNC@MYMACLOSE"(5) 调用的是一个重载的同名函数,参数表是union之类的,允许传递数组或常数,然后这个同名函数再创建或引用一个CALCINFO,并调用我们写的MYMACLOSE(CALCINFO* pData)啊?
害我刚刚又把C++的虚函数、重载、覆盖什么七七八八全都重看了一遍,5年没玩C++了啊。。。之前使用交易开拓者。。。
[此贴子已经被作者于2013-4-5 11:11:23编辑过]