以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  [求助] vba如何实现向activex组件正确传递数组?  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=162792)

--  作者:fourbrother
--  发布时间:2018/4/16 10:44:15
--  [求助] vba如何实现向activex组件正确传递数组?

//vba代码

 

dim newprice(10) \'定义一个一维数组,里面有10个浮点型数值
Dim MyAddin \'创建一个变量

Set MyAddin = CreateObject("MyActiveXDemo.VBSAddin")

       MyAddin.ArrTest5(newprice)

 

//------------------------------------------

 

//c++编写的VBSAddin

//ArrTest5是用来接收这个数组,并把数组的第一个值显示出来。

 

LONG VBSAddin::ArrTest5(VARIANT &arr)
{
 AFX_MANAGE_STATE(AfxGetStaticModuleState());

 

 

// 接收模块。目的: arr=newprice ,请问接收代码怎么写?

//接收代码:  ................................

 

//显示模块,显示数组的第一个值

    CString strValue;
            strValue.Format(L"%f",arr[0]);
             AfxMessageBox(strValue);

 

 

//求助!这个问题已经花了我好几天的时间了,网上的资料太少,只是说通过VARIANT 结合SAFEARRAY 来实现。但到现在还是不知道该如何实现

 

 return 0;
}

 

[此贴子已经被作者于2018/4/16 10:45:22编辑过]

--  作者:fourbrother
--  发布时间:2018/4/16 10:46:19
--  
在线等,急,谢谢各位老师!
--  作者:fourbrother
--  发布时间:2018/4/16 10:50:09
--  

LONG VBSAddin::ArrTest5(VARIANT &arr)   //这一行这样写是否有问题?

 

本人用的是 visual studio 2012 来写这个ActiveX组件

 

[此贴子已经被作者于2018/4/16 10:51:08编辑过]