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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → [求助]我写的这个DLL函数 MIN 咋没有显示呢?

   

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


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

主题:[求助]我写的这个DLL函数 MIN 咋没有显示呢?

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


加好友 发短信
等级:新手上路 帖子:78 积分:381 威望:0 精华:0 注册:2011/7/27 20:48:19
[求助]我写的这个DLL函数 MIN 咋没有显示呢?  发帖心情 Post By:2012/1/7 12:51:32 [只看该作者]

头文件中建: float funczxz(float a[],int n=10) { float min= a[0]; ??for (int i=0;ia[i]) min=a[i];} ??return min; ??} CPP中: __declspec(dllexport) int WINAPI ZXZ(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 && pData->m_pCalcParam[4].m_nParamStart >= 0 && pData->m_pCalcParam[5].m_nParamStart >= 0 && pData->m_pCalcParam[6].m_nParamStart >= 0 && pData->m_pCalcParam[7].m_nParamStart >= 0 && pData->m_pCalcParam[8].m_nParamStart >= 0 && pData->m_pCalcParam[9].m_nParamStart >= 0) //4个序列都含有效数值 { int nFirst = pData->m_pCalcParam[9].m_nParamStart; //已知返回的序列的第一个有效值位置与第4个序列一致 const float* pValue1 = pData->m_pCalcParam[0].m_pfParam; const float* pValue2 = pData->m_pCalcParam[1].m_pfParam; const float* pValue3 = pData->m_pCalcParam[2].m_pfParam; const float* pValue4 = pData->m_pCalcParam[3].m_pfParam; ? ?? ?? ?? ?? ? const float* pValue5 = pData->m_pCalcParam[4].m_pfParam; const float* pValue6 = pData->m_pCalcParam[5].m_pfParam; const float* pValue7 = pData->m_pCalcParam[6].m_pfParam; const float* pValue8 = pData->m_pCalcParam[7].m_pfParam; ? ?? ?? ?? ?? ? const float* pValue9 = pData->m_pCalcParam[8].m_pfParam; const float* pValue10 = pData->m_pCalcParam[9].m_pfParam; for( int i = nFirst; i < pData->m_nNumData; i++ ) {? ?? ?float a[] = {pValue1[i],pValue2[i],pValue3[i],pValue4[i],pValue5[i],pValue6[i],pValue7[i],pValue8[i],pValue9[i],pValue10[i] }; pData->m_pResultBuf[i] = funczxz(a,10); } return nFirst; } return -1; } 在金字塔中建公式如下引用此建的DLL公式 但没有数据显示 MA1:=100; MA2:=99; MA3:=88; MA4:=77; MA5:=66; MA6:=55; MA7:=44; MA8:=33; MA9:=22; MA10:=11; Mintest:"STOCKFUNC@ZXZ"(MA1,MA2,MA3,MA4,MA5,MA6,MA7,MA8,MA9,MA10);

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


加好友 发短信
等级:新手上路 帖子:78 积分:381 威望:0 精华:0 注册:2011/7/27 20:48:19
  发帖心情 Post By:2012/1/7 12:55:33 [只看该作者]

晕 咋个都挤在一起了....

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


加好友 发短信
等级:新手上路 帖子:78 积分:381 威望:0 精华:0 注册:2011/7/27 20:48:19
  发帖心情 Post By:2012/1/7 13:06:20 [只看该作者]

上面挤在一起 请朋友们看这里 问题看得清楚一些 http://oceanwindcd.blog.163.com/blog/static/128208247201207154744/

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


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2012/1/7 14:20:04 [只看该作者]

用IE浏览器发


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


加好友 发短信
等级:新手上路 帖子:78 积分:381 威望:0 精华:0 注册:2011/7/27 20:48:19
  发帖心情 Post By:2012/1/7 14:53:06 [只看该作者]

试下ADMIN说的IE看看:

头文件中建:
float funczxz(float a[],int n=10)
{ float min= a[0];
  for (int i=0;i<n;i++)
  { if(min>a[i]) min=a[i];}
  return min;
  }
CPP中:
__declspec(dllexport) int WINAPI ZXZ(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 &&

pData->m_pCalcParam[4].m_nParamStart >= 0 &&

pData->m_pCalcParam[5].m_nParamStart >= 0 &&

pData->m_pCalcParam[6].m_nParamStart >= 0 &&

pData->m_pCalcParam[7].m_nParamStart >= 0 &&

pData->m_pCalcParam[8].m_nParamStart >= 0 &&

pData->m_pCalcParam[9].m_nParamStart >= 0)
//4个序列都含有效数值

{



int nFirst = pData->m_pCalcParam[9].m_nParamStart;
//已知返回的序列的第一个有效值位置与第4个序列一致

const float* pValue1 = pData->m_pCalcParam[0].m_pfParam;

const float* pValue2 = pData->m_pCalcParam[1].m_pfParam;

const float* pValue3 = pData->m_pCalcParam[2].m_pfParam;

const float* pValue4 = pData->m_pCalcParam[3].m_pfParam;
                const float* pValue5 = pData->m_pCalcParam[4].m_pfParam;

const float* pValue6 = pData->m_pCalcParam[5].m_pfParam;

const float* pValue7 = pData->m_pCalcParam[6].m_pfParam;

const float* pValue8 = pData->m_pCalcParam[7].m_pfParam;
                const float* pValue9 = pData->m_pCalcParam[8].m_pfParam;

const float* pValue10 = pData->m_pCalcParam[9].m_pfParam;





for( int i = nFirst; i < pData->m_nNumData; i++ )

{      float a[] = {pValue1[i],pValue2[i],pValue3[i],pValue4[i],pValue5[i],pValue6[i],pValue7[i],pValue8[i],pValue9[i],pValue10[i] };

pData->m_pResultBuf[i] = funczxz(a,10);



}

return nFirst;

}

return -1;
}

在金字塔中建公式如下引用此建的DLL公式 但没有数据显示
MA1:=100;
MA2:=99;
MA3:=88;
MA4:=77;
MA5:=66;
MA6:=55;
MA7:=44;
MA8:=33;
MA9:=22;
MA10:=11;
Mintest:"STOCKFUNC@ZXZ"(MA1,MA2,MA3,MA4,MA5,MA6,MA7,MA8,MA9,MA10);

 


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


加好友 发短信
等级:新手上路 帖子:18 积分:90 威望:0 精华:0 注册:2011/9/28 13:31:20
  发帖心情 Post By:2012/1/9 12:57:29 [只看该作者]

你先用vc工具depends看看你的stockfunc.dll文件中的xzx是否正确,是c风格函数,如果不是的话在.h中添加zxz的声明,把zxz声明为c风格的。

在其它声明的函数下面添加
__declspec(dllexport) int WINAPI ZXZ(CALCINFO* pData);

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


加好友 发短信
等级:新手上路 帖子:18 积分:90 威望:0 精华:0 注册:2011/9/28 13:31:20
  发帖心情 Post By:2012/1/9 13:00:07 [只看该作者]

@只支持c调用,不支持c++风格函数
[此贴子已经被作者于2012-1-9 13:01:27编辑过]

 回到顶部