开帖继续讨论:Javascript调用activex接口问题(接口中有多个返回参数)

tumin999 2004-08-15 03:50:57
问题:通过脚本调用控件的接口函数,该函数有多个返回参数:
如:控件函数TestOut (int a, int * b, int * c)
{
*b = a + 10;
*c = *b + 10;
}

我在论坛中也看到了很对类似的问题,简单归纳解决办法如下:
1)对接口参数使用[out, retval],这样只可以使用JavaScript使用一个带有返回值的参数;
2)使用VBScript和VARIANT数据类型,这样可以获取多个返回参数。
但没有人提出如何使用JavaScript实现正确调用。我想继续请教大家。
...全文
305 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
IDispatch 2004-09-02
  • 打赏
  • 举报
回复
回复人: jiangsheng(蒋晟.MSMVP2004Jan) ( ) 信誉:253 2004-08-19 21:44:00 得分: 0


>使用VBScript和VARIANT数据类型,这样可以获取多个返回参数。
如果用自动化来做的话,JS一样可以做到的



Top

回复人: tumin999(守门员) ( ) 信誉:99 2004-09-02 12:54:00 得分: 0


我找到答案了,JS确实不能完成这种形势的调用。MSDN中的原话:
JavaScript does not support passing parameters by reference. JavaScript will make copies of these variables and pass them by value when calling methods that take by-reference parameters. Thus, you cannot get a return value via a method parameter when using JavaScript.


=======================
一个是五星,一个是MSDN
是谁在信口开河,鄙人严重观注。。。
tumin999 2004-09-02
  • 打赏
  • 举报
回复
我找到答案了,JS确实不能完成这种形势的调用。MSDN中的原话:
JavaScript does not support passing parameters by reference. JavaScript will make copies of these variables and pass them by value when calling methods that take by-reference parameters. Thus, you cannot get a return value via a method parameter when using JavaScript.
蒋晟 2004-08-19
  • 打赏
  • 举报
回复
>使用VBScript和VARIANT数据类型,这样可以获取多个返回参数。
如果用自动化来做的话,JS一样可以做到的
tumin999 2004-08-16
  • 打赏
  • 举报
回复
为什么说是JavaScript的问题呢?这个应该是能实现的。否则如果某个控件的接口函数就是返回多个返回值,岂不是只能用VBScript啦?
wangweixing2000 2004-08-16
  • 打赏
  • 举报
回复
[out,retval]在方法中只能有一个,要返回两个一上参数就只能用[out]属性,但在JavaScript下不能调用,这是JavaScript的问题!
tumin999 2004-08-16
  • 打赏
  • 举报
回复
我觉得JavaScript更像c呀,这种方式为什么实现不了呢?

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧