//vba代码
dim newprice(10) '定义一个一维数组,里面有10个浮点型数值 Set MyAddin = CreateObject("MyActiveXDemo.VBSAddin") MyAddin.ArrTest5(newprice)
//------------------------------------------------- //c++编写的VBSAddin //ArrTest5是用来接收这个数组,并把数组的数据类型显示出来。
LONG VBSAddin::ArrTest5(VARIANT &arr) //这一行这样写是否有问题?
//显示数组的数据类型 CString strValue;
return 0;
运行结果: 要么显示0 , 要么显示超过10000的随机整数。 不能正确判断是哪一种数据类型。
附: 百度的资料:
//------------------------------------------
使用VARIANT来传递参数意味着非强类型语言(例如VBScript)能够调用使用强类型语言(C++)实现的方法。Invoke()方法的实现可以检查参数VARIANT封装的数值是否符合其正确的数据类型。如果符合,该类型将取出,并传递给调用方法。否则,Invoke()方法能够尝试使用 VariantChangeType()API函数来将该数值转换成正确的类型。
|
该问题超出一般客户的服务范畴,需要研发人员回复,请耐心等待,不要重复发帖
该问题论坛已经多次有过讨论了,相关讨论内容贴
http://www.weistock.com/bbs/dispbbs.asp?BoardID=5&ID=55641&skin=0
http://www.weistock.com/bbs/dispbbs.asp?BoardID=5&ID=71050&skin=0
http://www.weistock.com/bbs/dispbbs.asp?BoardID=5&ID=55949&skin=0