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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → VBS 调用C++计算后 ,回传Safearray数组给VBS问题

   

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


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

主题:VBS 调用C++计算后 ,回传Safearray数组给VBS问题

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


加好友 发短信
等级:论坛游侠 帖子:260 积分:313 威望:0 精华:0 注册:2012/10/15 23:46:48
VBS 调用C++计算后 ,回传Safearray数组给VBS问题  发帖心情 Post By:2014/10/16 15:23:42 [显示全部帖子]

VBS 调用C++计算后 ,回传Safearray数组给VBS问题, 写了个例程

 

VBS:

 

 Dim rarr 
 
    Set MyAddin = CreateObject("MyActiveXDemo.VBSAddin")
   
    rarr = MyAddin.MyTest(History.close(0))
   
    Dim MyVariable
 
    MyVariable = IsArray(rarr)
   
    call application.msgout("是否数组_"&MyVariable&"_上限_"&UBound(rarr)&"_下限_"&LBound(rarr))
    call application.msgout("是否数组_"&rarr(1))

 

   For i=0 To UBound(rarr)-LBound(rarr)
    call application.msgout("数组值_"&rarr(i))
   Next

 

VC:

VARIANT VBSAddin::MyTest(long a)  
{

   //返回数组
   VARIANT varChunk;

   SAFEARRAY  FAR*  psa;
   SAFEARRAYBOUND  rgsabound[1];
   rgsabound[0].lLbound=0;
   rgsabound[0].cElements=2;
   //psa=SafeArrayCreate(VT_I4,1,rgsabound);
   psa=SafeArrayCreate(VT_VARIANT,1,rgsabound);

   long  idx;
   long  setdt;

   idx=0;
   setdt=12;

   SafeArrayPutElement(psa,&idx,&setdt);

   idx=1;
   setdt=342;
   SafeArrayPutElement(psa,&idx,&setdt);

   varChunk.vt = VT_ARRAY|VT_VARIANT;
   varChunk.parray = psa;
   return varChunk;

}

 

返回回去,("是否数组_"&MyVariable&"_上限_"&UBound(rarr)&"_下限_"&LBound(rarr))  -true, 0,1

但是 msgout("数组值_"&rarr(i))  就报类型不匹配,这个该怎么弄,求助啊

 


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


加好友 发短信
等级:论坛游侠 帖子:260 积分:313 威望:0 精华:0 注册:2012/10/15 23:46:48
  发帖心情 Post By:2014/10/16 15:40:01 [显示全部帖子]

那个 long a参数也是 Vc 消息机制报错才加的,例程其实没用到

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


加好友 发短信
等级:论坛游侠 帖子:260 积分:313 威望:0 精华:0 注册:2012/10/15 23:46:48
  发帖心情 Post By:2014/10/16 16:09:20 [显示全部帖子]

我用 COleSafeArray 再试下

 回到顶部