欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → [C++]请教一个dll接口中,函数参数传递的问题

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3528人关注过本帖树形打印复制链接

主题:[C++]请教一个dll接口中,函数参数传递的问题

帅哥哟,离线,有人找我吗?
damoncles
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:18 积分:0 威望:0 精华:0 注册:2016/8/18 15:48:26
[C++]请教一个dll接口中,函数参数传递的问题  发帖心情 Post By:2016/8/18 16:56:06 [显示全部帖子]

请教下,Dll接口中,下面两种参数传递有什么区别啊?什么时候该用哪种方式


 const int   m_nNumParam;   // 调用参数数量
 const CALCPARAM* m_pCalcParam;   // 调用参数数组

 

 

const int   m_nParam1Start;   //参数1有效起始位置
 const float*  m_pfParam1;    //调用参数1 
 const float*  m_pfParam2;    //调用参数2
 const float*  m_pfParam3;    //调用参数3
 const float*  m_pfParam4;    //调用参数4


 回到顶部
帅哥哟,离线,有人找我吗?
damoncles
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:18 积分:0 威望:0 精华:0 注册:2016/8/18 15:48:26
  发帖心情 Post By:2016/8/18 16:56:47 [显示全部帖子]

typedef struct tagCALCPARAM
{
 union
 {
  float* m_pfParam;    //序列参数,指向一个浮点型数组 
  float m_fParam;    //数值参数 
 };
 int m_nParamStart;   //序列参数有效起始位置
}CALCPARAM;

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
damoncles
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:18 积分:0 威望:0 精华:0 注册:2016/8/18 15:48:26
  发帖心情 Post By:2016/8/18 17:00:20 [显示全部帖子]

为什么参数传递进来,有时候是这样写的

__declspec(dllexport) int WINAPI MYMACLOSE(CALCINFO* pData)
{
 if ( pData->m_pfParam1 &&    //参数1有效
   pData->m_nParam1Start<0 &&   //参数1为常数
   pData->m_pfParam2==NULL )   //仅有一个参数

 

有时候却是这样的

__declspec(dllexport) int WINAPI MYBBI(CALCINFO* pData)
{
 if ( pData->m_pCalcParam[0].m_nParamStart >= 0 &&
   pData->m_pCalcParam[1].m_nParamStart >= 0 &&
   pData->m_pCalcParam[2].m_nParamStart >= 0 &&
   pData->m_pCalcParam[3].m_nParamStart >= 0 )   //4个序列都含有效数值
 {
  //计算返回的序列的第一个有效值位置
  int nFirst = pData->m_pCalcParam[3].m_nParamStart;  //已知返回的序列的第一个有效值位置与第4个序列一致


 回到顶部
帅哥哟,离线,有人找我吗?
damoncles
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:18 积分:0 威望:0 精华:0 注册:2016/8/18 15:48:26
  发帖心情 Post By:2016/8/18 17:01:31 [显示全部帖子]

是不是参数数量小于等于4个,用第二种,大于4个用第一种?

 回到顶部
帅哥哟,离线,有人找我吗?
damoncles
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:18 积分:0 威望:0 精华:0 注册:2016/8/18 15:48:26
  发帖心情 Post By:2016/8/19 11:22:55 [显示全部帖子]

哦,基本理解了,应该就是看参数传递进去是序列还是常数以及参数个数的区别了,谢谢哈


 回到顶部