• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 如何从ASP传数组给COM组件?

如何从ASP传数组给COM组件?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了asp 定义数组,asp 数组,asp 输出数组,asp字符串数组,asp json 数组等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 如何从ASP传数组给COM组件?
描述:


我现在的情况是从COM 组件传数组到ASP端是可以的,在COM组件中构造数组,数组作为输出参数,在ASP中得到返回值,直接按数组取值就可以了。
但是如果在ASP页面中声明一个数组,要想把这个数组作为输入参数传给COM,在COM中应该如何取出数组的值呢?


解决方案1:

同意用安全数组

解决方案2:

构造一个safearray,用variant传进去.

解决方案3:

[id(1), helpstring("method ExpectArray")] HRESULT ExpectArray([in] VARIANT varArray,[out,retval]BSTR* outstr);
STDMETHODIMP CArrayTest::ExpectArray(VARIANT pvarArray,BSTR* outstr)
{
// accepte array from vbscript
_bstr_t bstmp;
VARIANT* varArray;
if(pvarArray.vt==(VT_VARIANT|VT_BYREF))
{
varArray = pvarArray.pvarVal;
}
else
varArray = &pvarArray;
if(VT_ARRAY|VT_BYREF|VT_VARIANT==varArray->vt) 
{
VARIANT* strarray;
SAFEARRAY* psa = *(varArray->pparray);
//SafeArrayCopy( *(varArray->pparray),&psa);
SafeArrayAccessData(psa,(void**)&strarray);
UINT uDim = SafeArrayGetDim(psa);
if(uDim==1)
{
long lLbound,lRbound;
SafeArrayGetLBound(psa,1,&lLbound);
SafeArrayGetUBound(psa,1,&lRbound);
for(long i=lLbound;i<=lRbound;i++)
{
if(strarray[i].vt==VT_BSTR)
bstmp +=strarray[i].bstrVal;
else if(strarray[i].vt==VT_EMPTY)
{
char buf[64];
wsprintf(buf,"element%d is empty",i);
bstmp +=buf;
}
}
}
else
bstmp = "wrong dimension number";
SafeArrayUnaccessData(psa); 
}
*outstr = bstmp.copy();
return S_OK;
}
set obj = createobject("AcceptArray.ArrayTest")
dim s(3)
s(1) = "aaa"
s(2) = "bbb"
s(3) = "ccc"
obj.expectarray(s)
set obj = nothing


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 如何在一个方法中返回一个数组,怎样用asp访问这数组呢??
  • ASP与用Delphi编写的COM+之间如何传递数组类型的参数?
  • asp中如何获取用vc写的COM中的类结构数组
  • ASP和COM之间如何相互传数组
  • ASP中的数组传入COM中,COM中如何解析出其值?
  • 如何从ASP传数组给COM组件?

相关文章

  • 2017-06-05 想问大家,QQ是怎么做出来的?
  • 2017-06-05 VB调用VCDLL的奇怪问题
  • 2017-06-05 请教DLL编程
  • 2017-06-04 请问com组件中怎么用多线程
  • 2017-06-04 IE中不能正常加载ocx的问题。
  • 2017-06-05 AfxBeginThread使用报sockcorecpp,Line:924错!!!高手们能帮忙看看吗~
  • 2017-06-04 为什么我在ATL的OnDraw中画不了线???????
  • 2017-06-04 如何在用ATL制作的COM中返回一個Recordset??
  • 2017-06-05 Web上的Active,如何得到Web窗体的CDC和CRect?
  • 2017-06-05 在worker线程中如何改变ui线程得光标形状

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 奇怪的问题,请教高人!!!!多谢!!!
    • 高手帮忙了,如何在DLL中装载一个资源?等待
    • VC最小化时的代码在什么地方写?
    • 有没有简单的方法提取activex控件的图标?
    • Excel数据关联修改
    • 使用VS2010关于TeeChart控件创建问题
    • 一个关于CDateTimeCtrl的简单问题?在线
    • 我看了一下有关com的介绍!觉得一头雾水,能不能推荐几本初学者的好书!
    • API编写的串口,收到的16进制如何显示成文本?
    • com+调试

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有