社区
ATL
帖子详情
variant 变量的传递问题。
blastball
2002-05-24 09:10:56
应用层给控件传const FAR& VARIANT. 是引用不是指针,指针是传近来了,但数据不让访问?
VARIANT 包含的是Safearray指针,但Safearray的数据却读不到,怎么办?
...全文
25
2
打赏
收藏
variant 变量的传递问题。
应用层给控件传const FAR& VARIANT. 是引用不是指针,指针是传近来了,但数据不让访问? VARIANT 包含的是Safearray指针,但Safearray的数据却读不到,怎么办?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zxs218
2002-05-27
打赏
举报
回复
wyzegg(蛋):说得对,需要拷贝数据,另外参数不要使用引用,对外的接口。
wyzegg
2002-05-25
打赏
举报
回复
另外定义一个VARIANT var;然后用VariantCopy
如何存储二进制数据方法
SafeArray 在ADO编程中经常使用。它的主要目的是用于automation中的数组型参数的
传递
。因为在网络环境中,数组是不能直接
传递
的,而必须将其包装成 SafeArray。实质上SafeArray就是将通常的数组增加一个描述符,说明其维数、长度、边界、元素类型等信息。SafeArray也并不单独使用,而是将其再包装到
VARIANT
类型的
变量
中,然后才作为参数传送出去。在
VARIANT
的vt成员的值如果包含VT_ARRAY|...,那么它所封装的就是一个SafeArray,它的parray成员即是指向SafeArray的指针。SafeArray中元素的类型可以是
VARIANT
能封装的任何类型,包括
VARIANT
类型本身。
使用
VARIANT
传递
数组的方法及步骤
在使用COM/DCOM写组件时经常要
传递
数组,一般比如SHORT,LONG等指针可以直接
传递
相应的指针,但是当遇到需要
传递
BYTE数组就有
问题
了,COM不支持BYTE类型参数,
传递
BYTE数组也就无从说起了。经过查找资料发现使用
VARIANT
变量
可以
传递
任何类型的数组,随将使用
VARIANT
数组的方法总结一下。其实在
VARIANT
传递
数组的方法非常简单,只要理解SAFEARRAY数组的使用方法即可
在COM方法中用
VARIANT
类型
传递
数组数据
在COM方法中可用
VARIANT
类型
传递
数组数据,在VC++中用SAFEARRAY处理。下面给出输入和输出数组的例子 1。输入数组到COM中 STDMETHODIMP CTestCom1::vb2vc(
VARIANT
buffer) { long dim=SafeArrayGetDim(buffer.parray);
Variant
类型在各语言中的参数
传递
Variant
类型在各语言中的参数
传递
vb与c语言数组
传递
,VB几种函数参数
传递
方法,
Variant
,数组,Optional,ParamArray
VB几种函数参数
传递
方法,
Variant
,数组,Optional,ParamArray一) 过程的参数被缺省为具有
Variant
数据类型。1)ByRef按 地址
传递
参数在 VB 中是缺省的按地址
传递
参数后,过程返回的也是地址,函数中改变了的
变量
值也将带回来。2)ByVal 关键字指出参数是按值来
传递
的按值
传递
参数时,
传递
的只是
变量
的副本。如果过程改变了这个值,则所作变动只影响副本而不会影响变...
ATL
3,245
社区成员
48,537
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章