以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 高级功能研发区 (http://weistock.com/bbs/list.asp?boardid=5) ---- [C++]请教一个dll接口中,函数参数传递的问题 (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=138232) |
-- 作者:damoncles -- 发布时间:2016/8/18 16:56:06 -- [C++]请教一个dll接口中,函数参数传递的问题 请教下,Dll接口中,下面两种参数传递有什么区别啊?什么时候该用哪种方式
const int m_nParam1Start; //参数1有效起始位置 |
-- 作者:damoncles -- 发布时间:2016/8/18 16:56:47 -- typedef struct tagCALCPARAM
|
-- 作者:damoncles -- 发布时间:2016/8/18 17:00:20 -- 为什么参数传递进来,有时候是这样写的 __declspec(dllexport) int WINAPI MYMACLOSE(CALCINFO* pData)
有时候却是这样的 __declspec(dllexport) int WINAPI MYBBI(CALCINFO* pData) |
-- 作者:damoncles -- 发布时间:2016/8/18 17:01:31 -- 是不是参数数量小于等于4个,用第二种,大于4个用第一种? |
-- 作者:王锋 -- 发布时间:2016/8/18 17:35:46 -- 以下是引用damoncles在2016-8-18 17:00:20的发言:
为什么参数传递进来,有时候是这样写的 __declspec(dllexport) int WINAPI MYMACLOSE(CALCINFO* pData)
有时候却是这样的 __declspec(dllexport) int WINAPI MYBBI(CALCINFO* pData)
这个主要取决于你在PEL中调用的方式来决定的,前面的是 "STOCKFUNC@MYMACLOSE"(5) 只有1个参数传递进去,所以只使用pData->m_pfParam1就可以了
后面的那个 MYBBI: "STOCKFUNC@MYBBI"(MA1, MA2, MA3, MA4, 4); 使用了5个参数,因此要使用m_pCalcParam扩展的数组结构,因为第中参数结构只能最多传递4个参数进去,这些我们都在工程中做了详尽的说明了,这里再照抄如下
/* 注2: */
|
-- 作者:王锋 -- 发布时间:2016/8/18 17:37:47 -- 另外需要提醒的是,由于金字塔进程不允许调试,如果你对接口数据某些东西不是很理解传递了什么进去,你可以使用txt日志记录的方式,运行时将你需要了解的数据项写文件进去,这样同样起到了调试效果 |
-- 作者:damoncles -- 发布时间:2016/8/19 11:22:55 -- 哦,基本理解了,应该就是看参数传递进去是序列还是常数以及参数个数的区别了,谢谢哈 |
-- 作者:分析者 -- 发布时间:2017/2/9 15:43:19 -- 请问,可以一次返回多个数组吗? |
-- 作者:王锋 -- 发布时间:2017/2/9 16:14:55 -- 不可以 |