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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → [求助]还是vbs传递数组给dll的问题

   

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


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

主题:[求助]还是vbs传递数组给dll的问题

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


加好友 发短信
等级:新手上路 帖子:16 积分:0 威望:0 精华:0 注册:2018/8/28 22:19:12
[求助]还是vbs传递数组给dll的问题  发帖心情 Post By:2018/8/29 22:05:15 [只看该作者]

看了相关的帖子,具体到编程上,还是有调试通不过的地方,不知道问题在哪里,
希望vbs可以传递数组给dll中:
vbs代码如下:
Dim d(0)
 d(0)=12.67
 
 Dim MyAddin 
 
Set MyAddin = CreateObject("MyActiveXDemo.VBSAddin")
MyAddin.MyTest d(0)

这里MyAddin.MyTest就是后台dll里的方法,如下:
float VBSAddin::MyTest(const VARIANT FAR& vbkh)
{

 CString strValue;
strValue.Format("%x",vbkh.vt);
AfxMessageBox("数据类型" + strValue);
。。。
}

首先vt数据类型就出不来,不知道什么值,更谈不上之后的安全数组访问数组元素了,各位老大,能有例子看看么,帖子里只有谈到安全数组啊,什么的
没有具体代码,对我们小白来说,这里的程序写起来就摸不到头脑,百度了半天,合适的也很少。
在这里跪谢各位老大,大哥。

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


加好友 发短信
等级:管理员 帖子:2437 积分:0 威望:0 精华:0 注册:2016/3/5 22:53:41
  发帖心情 Post By:2018/8/29 22:23:28 [只看该作者]

http://www.weistock.com/bbs/dispbbs.asp?BoardID=5&ID=162800&skin=0
看一下历史讨论帖,是否能帮助到你

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


加好友 发短信
等级:新手上路 帖子:16 积分:0 威望:0 精华:0 注册:2018/8/28 22:19:12
  发帖心情 Post By:2018/8/29 22:55:28 [只看该作者]

老大,这三个帖子我都看了好几遍

可以的,Activex控件的属性使用 VT_VARIANT 即可,这是C++专门针对Activex的类型,可以包含任何VBA中的数值类型。

 

C++中使用 COleSafeArray 对象来出来VBA传递过来的数组即可。

具体请百度搜索。

基本我就是这个思路做,但编程细节上,老是返回值不对,就如我帖子里说的,要有例程看一下就好了,
细节上不知道c++那个接口写的对不对,之后如何取得值的程序片段也只能碰,文档看了一大堆,各种试
就是不行。
多谢老大回复!!!

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


加好友 发短信
等级:管理员 帖子:1516 积分:229 威望:0 精华:0 注册:2012/3/30 12:40:56
  发帖心情 Post By:2018/8/30 0:01:12 [只看该作者]

你前面说的数值类型不出来是怎么个意思?是数值不是你要的类型还是根本就没对话框弹出?

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


加好友 发短信
等级:新手上路 帖子:16 积分:0 威望:0 精华:0 注册:2018/8/28 22:19:12
  发帖心情 Post By:2018/8/30 0:21:22 [只看该作者]

对话框弹不出来,那肯定是在调用vt的时候出错了,所以我怀疑函数输入参数的类型是否写的不对

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


加好友 发短信
等级:管理员 帖子:1516 积分:229 威望:0 精华:0 注册:2012/3/30 12:40:56
  发帖心情 Post By:2018/8/30 9:52:54 [只看该作者]

你试试在函数的最前面加个随便弹窗的代码,我怀疑这个函数可能都没被正常调用

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


加好友 发短信
等级:新手上路 帖子:16 积分:0 威望:0 精华:0 注册:2018/8/28 22:19:12
  发帖心情 Post By:2018/8/30 10:38:29 [只看该作者]

函数我确认过,调用,并且我在函数体内加了若干弹出框,来确认到哪条语句就down了,现在主要问题是,根据我上面的vbs和函数代码
我不太确认我的接口是否正确,传入参数类型是否正确。
关于传入数组的问题,论坛里也没有例子代码可以学习参考,对于我们没做过混合编程,特别是这种比较复杂的数组参数传递的人来说,就比较
耗费时间了,论坛里的vbs和c++混合编程的例子,是简单的数据类型(float类型)传递,这些都已经通过了,希望大哥们能整一个数组传递的
事例程序,这样以后会节省很多小白的时间,之前的相关帖子我基本全看过了,很多人提问,最终是否解决,也不得而知,所以,我觉得这个问题
也算是共性的问题,希望大哥们百忙中抽出点时间,整个例子,这样对于我们那是相当大的帮助!
跪谢!!!

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


加好友 发短信
等级:管理员 帖子:2437 积分:0 威望:0 精华:0 注册:2016/3/5 22:53:41
  发帖心情 Post By:2018/8/30 11:46:21 [只看该作者]

您的这个问题已经超过了我们对非专业版用户的服务范畴,如果您是VIP用户,建议该帖转至VIP论坛处理,否则我们将择机另安排开发人员予以支持,请耐心等待。

 回到顶部