以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 高级功能研发区 (http://www.weistock.com/bbs/list.asp?boardid=5) ---- 如何用SAFEARRAY向VBS传递数组 (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=55949) |
-- 作者:qq909675470 -- 发布时间:2013/8/29 19:02:54 -- 如何用SAFEARRAY向VBS传递数组 最近写了个MFC Dll ,用VBS成功的向C++的Dll里传递了数组,可是处理完毕之后,我却不知道怎样传回来了。 我的函数体如下: BaoHanTest(const VARIANT FAR& vbkh, const VARIANT FAR& vbkl,long length, VARIANT FAR& buffer) 其中vbkh,vbkl,length都是vbs传给dll的,这部分C++获取数据没问题,buffer是用来传出数组的 需要传给vbs的数组是这样定义的: float *kh=new float [length+1]; 里面已经放好了数据,如今想通过buffer把它传回VBS,用Array()接受, 例如,object.函数名 Array 网上说用SAFEARRAY,可是我传回去的都接受不到,不知道怎样弄 |
-- 作者:王锋 -- 发布时间:2013/8/29 21:34:02 -- 给你一段金字塔的C++代码
VARIANT IFormulaRunTime::GetVARDATA(LPCTSTR Name) // Create the safe-array... lArrayIndex[0] = i; |
-- 作者:qq909675470 -- 发布时间:2013/8/30 15:11:58 -- 您好,我按照上面的思想写了个测试用例:
VARIANT varColInfo[3]; // 每一列
COleSafeArray sa; // 返回 VARIANT VBSAddin::BaoHanTest(){ 刚才的那段代码}
在vbs里调用如下:
dim nkh(1) 提示 运行时错误 ,描述为类型不匹配,是我在vbs里调用错误吗,应该怎样调用?
Dim MyAddin Set MyAddin = CreateObject("MyActiveXDemo.VBSAddin") nkh= MyAddin.BaoHanTest() msgbox nkh(0) |
-- 作者:王锋 -- 发布时间:2013/9/2 12:58:58 -- 把你的C++工程,去掉编译的中间文件,把工程打包压缩过来我们帮你看看 |
-- 作者:wsslei -- 发布时间:2014/10/13 0:57:27 -- 以下是引用王锋在2013/9/2 12:58:58的发言:
把你的C++工程,去掉编译的中间文件,把工程打包压缩过来我们帮你看看 王工,这兄弟的问题解决了吗? 我也有一样的问题。。。。请教下 |