社区
ATL
帖子详情
如何在MFC中传递一个VARIANT数组给vbscript函数
fish_kun
2007-06-08 11:05:26
我在MFC中有一个VARIANT数组,它大小不定,类型也不定,可能是包含long型的VARIANT,也可能是包含字符串的VARIANT.在MFC中,它是一个VARIANT数组,请问各位,我如何将这个数组传递给vbscript呢?
...全文
569
8
打赏
收藏
如何在MFC中传递一个VARIANT数组给vbscript函数
我在MFC中有一个VARIANT数组,它大小不定,类型也不定,可能是包含long型的VARIANT,也可能是包含字符串的VARIANT.在MFC中,它是一个VARIANT数组,请问各位,我如何将这个数组传递给vbscript呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sjdev
2007-06-18
打赏
举报
回复
我复制过来的东西,到你这里又能贴一次:
[问题提出]
ATL做com,想让一方法返回一数组,我这样声明:……[out,retval]SAFEARRAY** par)出错,为什么?最好能给一简单例子
[解决方法]
在COM方法中可用VARIANT类型传递数组数据,在VC++中用SAFEARRAY处理。下面给出输入和输出数组的例子
1。输入数组到COM中
STDMETHODIMP CTestCom1::vb2vc(VARIANT buffer)
{
long dim=SafeArrayGetDim(buffer.parray);
long ubound;
long lbound;
SafeArrayGetUBound(buffer.parray,dim,&ubound);
SafeArrayGetLBound(buffer.parray,dim,&lbound);
BSTR* buf;
BSTR pd[2];
SafeArrayAccessData(buffer.parray,(void**)&buf);
for (int i=lbound;i<ubound;i++)
pd[i]=buf[i];
}
return S_OK;
}
buffer为一维数组,存放字符串,在vb中的代码为
Dim oo As ARRAYTESTLib.TestCom1
Set oo = New ARRAYTESTLib.TestCom1
Dim buf(2) As String
buf(0) = "65"
buf(1) = "anss"
oo.vb2vc buf
2。COM返回数组数据到vb
STDMETHODIMP CTestCom1::retarray(VARIANT *buffer)
{
//返回数组
SAFEARRAY FAR* psa;
SAFEARRAYBOUND rgsabound[1];
rgsabound[0].lLbound=0;
rgsabound[0].cElements=2;
psa=SafeArrayCreate(VT_I4,1,rgsabound);
long idx;
long setdt;
idx=0;
setdt=12;
SafeArrayPutElement(psa,&idx,&setdt);
idx=1;
setdt=342;
SafeArrayPutElement(psa,&idx,&setdt);
V_VT(buffer) = VT_ARRAY | VT_I4;
V_ARRAY(buffer)=psa;
return S_OK;
}
vb中的代码为:
Dim oo As ARRAYTESTLib.TestCom1
Set oo = New ARRAYTESTLib.TestCom1
Dim rarr As Variant
oo.retarray rarr
MsgBox rarr(0) & rarr(1)
fish_kun
2007-06-10
打赏
举报
回复
就是,也按VARIANT类型接受.
CathySun118
2007-06-09
打赏
举报
回复
也用VARIANT类型接收阿
xdlous
2007-06-09
打赏
举报
回复
看到好多星,
俺就不说了
masterz
2007-06-09
打赏
举报
回复
反了,这个更合适
http://www.geocities.com/Jeff_Louie/safearray.html
Using and Returning SafeArrays
masterz
2007-06-09
打赏
举报
回复
看看这个
http://onegazhang.spaces.live.com/blog/cns!D5E642BC862BA286!213.entry
pass 2-dimension string array from vbscript to COM
wishfly
2007-06-09
打赏
举报
回复
up
珍惜生命远离CPP
2007-06-08
打赏
举报
回复
看看SAFEARRAY 类型
MFC
读取Excel文件+数据处理+写入Excel
在日常编程的过程
中
,我们经常会遇到需要读写文件的操作,当然,最好的选择是数据库来进行读写,但是由于数据库使用环境的要求(比如某些数据库要求必须安装数据库软件后才能使用),同时,要进行数据库操作需要对SQL语句有一定的了解,门槛相对较高,所以我们有时需要用EXCEL来代替简单的数据库操作,对于
MFC
连接数据库并进行对应操作,可以参考之前的博客:
MFC
以ADO方式连接ACCESS数据库 今天主要介绍...
如何添加到
MFC
应用程序破坏
VBScript
的支持
您可以添加
MFC
应用程序开销很小,使用 Microsoft ActiveX 脚本技术类似于 VBA 的脚本编写功能。本文演示如何创建新的
MFC
应用程序
中
,或修改现有,合并了
VBScript
的支持。 回到顶端 | 提供反馈 更多信息 请按照以下步骤来生成并运行该示例: 创建新
MFC
对话框基于的应用程序,或使用要添加脚本的支持已有的应用程序。 向对话框,添加
一个
...
一个
MFC
调用脚本的类(javascript ,
vbscript
)
Script.h
C++字符串类型说明(类型转换)
引言 因为C语言风格的字符串容易出错且不易管理,黑客们甚至利用可能存在的缓冲区溢出bug把C语言风格的字符串作为攻击目标,所以出现了很多字符串封装类。不幸的是,在某些场合下我们不知道该使用哪个字符串类,也不知道怎样把
一个
C风格的字符串转换成
一个
字符串封装类。 这篇文章将介绍所有在Win32 API,
MFC
, STL, WTL 和 Visual C++ 运行库
中
出现的字符串类型。我将描述每
一个
COM和数据库
如何手动把ACTIVEX控件天家到窗口
中
?求教:我
一个
activex控件要处理PreTranslateMessage,这个控件如果是插入在
一个
dialog上就正常,如果在
一个
view
中
用create创建控件的PreT如何将activex control
中
的类导出?请进!up有分!VC开发的带有dispatch的com服务器如何返回
一个
数组
给
vbscript
,或者javascript实现OLE容器N
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章