大家都来关心一下COM的接口问题,我发现很多人问,都没有答案:定义的接口为VARIANT数组,在VBS里可以调用,在JSP里不能调用,为什么?
佚名通过本文主要向大家介绍了
大家都来关心一下COM的接口问题,我发现很多人问,都没有答案:定义的接口为VARIANT数组,在VBS里可以调用,在JSP里不能调用,为什么?等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 大家都来关心一下COM的接口问题,我发现很多人问,都没有答案:定义的接口为VARIANT数组,在VBS里可以调用,在JSP里不能调用,为什么?
描述:
解决方案1:
描述:
接口定义:HRESULT Test([out]VARIANT *vv/*数组*/,[out,retval]long* lrt)
再VBS中可以正确调用,但是在JSP中却不能调用。是否JSP不支持VAIRANT类型?如果否请给出正确的调用方式,最好源码。我发现不同语言之间的数据类型转换最麻烦。下面给出正确的VBS调用,希望有帮助:
dim vv,lrt
lrt = Test(vv)
解决方案1:
JSP应改指的是JScript吧。
我原来也遇到过这个问题,后来放下了一直没有解决,不过我觉得JScript中的数组是一个对象,不是SAFEARRAY,应该转成IDispatch调用上面的方法吧。
HRESULT Test([out]VARIANT *vv/*数组*/,[out,retval]long* lrt)接口定义是错的,vv只是指向单变量,应改为HRESULT Test([out,size_is(*lrt)]VARIANT *vv/*数组*/,[out,retval]long* lrt)