社区
ATL
帖子详情
定义接口方法时,如何定义数组类型
liuliguo940
2003-10-20 10:08:31
定义接口方法时,如何定义数组类型(short类型)
...全文
314
8
打赏
收藏
定义接口方法时,如何定义数组类型
定义接口方法时,如何定义数组类型(short类型)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zyong310
2003-10-21
打赏
举报
回复
你肯定是用来IDIspatch作为基接口,size_is不能出现在tlb中,只能出现在oicf中,所以标准列集不能处理size_is,而oleautomation使用的是标准列集,所以冲突了,如果你不是非得从IDispatch继承的话,可以从IUnknown继承,这样就没有问题了.
liuliguo940
2003-10-21
打赏
举报
回复
老兄
再请教一个问题
当按你的方法做以后
出现
warning MIDL2039 : interface does not conform to [oleautomation] attribute : [ Parameter 'a' of Procedure 'Proc1' ( Interface 'INet' ) ]
警告如何处理
zyong310
2003-10-21
打赏
举报
回复
如果客户端是C++和C的话,可以用数组类型,比如:[in,size_is(20)]int p[]来定义一个p[20]的数组,也可以定义一个指针类型[in,size_is(20)]int* p来定义一个指向20个int的指针,这样MIDL就能正确的列集和散集。
ProgrameMan
2003-10-21
打赏
举报
回复
因为你是IDispatch作为基接口
所以这样定义
如
[id(1), helpstring("method Ontt")] HRESULT Ontt([in]int iProType, [in]VARIANT Parames);
Parames为数组变量
在VC中
_bstr_t tt;
tt="into the param it";
HRESULT hr=S_OK;
long lStartBound =0;
long lEndBound = 2;
hr = SafeArrayGetLBound(Parames.parray, 1, &lStartBound);
hr = SafeArrayGetUBound(Parames.parray, 1, &lEndBound);
short p[30] = {0};
for(long iIndex = lStartBound; iIndex <= lEndBound; iIndex ++)
{
VARIANT varFlavor;
VariantInit(&varFlavor);
hr = SafeArrayGetElement(Parames.parray,&iIndex, &varFlavor);
if(hr != S_OK)
{
tt="error,can't find the value";
}
if(varFlavor.vt == VT_I4 )
{
long lsz = varFlavor.lVal;
}
if(varFlavor.vt == VT_I2 )
{
short lsz1 = varFlavor.iVal;
}
if(varFlavor.vt == VT_BSTR )
{
_bstr_t bstrOut(varFlavor.bstrVal);
CComVariant variantFlavor(SysAllocString(varFlavor.bstrVal));
//SafeArrayPutElement(pOutArray,&iIndex,&variantFlavor);
tt= bstrOut;
}
}
return S_OK;
}
liuliguo940
2003-10-21
打赏
举报
回复
能否我的详细一些
最好有示例
谢谢
XXandOO
2003-10-21
打赏
举报
回复
传入参数用VARIANT,传出参数用VARIANT*,搞定!
liuliguo940
2003-10-21
打赏
举报
回复
老兄
你说的太对了
是IDIspatch作为基接口
我非得从IDispatch继承
该如何处理?
qwedcxza
2003-10-20
打赏
举报
回复
使用 VARIANT 定义
然后用 VARIANT 中的 parray,是一个 SAFEARRAY, 你需要了解 SAFEARRAY 的用法
《C语言基础》 之 第8章 数组
课程内容:数组的声明、
定义
(初始化)、数组的赋值、数组在内存中的空间特点、使用 [ ] 访问数组元素、数组元素的指针、数组第一个元素指针的表示
方法
、数组命令与++、sizeof与数组、数组名总结、函数普通传参回顾...
ts
定义
数组
类型
_TS -- (2)
接口
、数组的
类型
、函数的
类型
2019-10-28:学习内容:
接口
、数组的
类型
、函数的
类型
(展开涉及多个内容)一、
接口
(Interfaces):(1)LabelledValue
接口
就好比一个名字,用来描述上面例子里的要求。 它代表了有一个label属性且
类型
为string的对象。 需要注意的是,我们在这里并不能像在其它语言里一样,说传给printLabel的对象实现了这个
接口
。我们只会去关注值的外形。 只要传入的对象满足上...
【TypeScript】005-对象的
类型
——
接口
与 数组的
类型
文章目录5、对象的
类型
——
接口
什么是
接口
简单的例子可选属性任意属性只读属性6、数组的
类型
「
类型
+ 方括号」表示法数组泛型用
接口
表示数组类数组any 在数组中的应用 5、对象的
类型
——
接口
在 TypeScript 中,我们使用
接口
(Interfaces)来
定义
对象的
类型
。 什么是
接口
在面向对象语言中,
接口
(Interfaces)是一个很重要的概念,它是对行为的抽象,而具体如何行动需要由类(classes)去实现(implement)。 TypeScript 中的
接口
是一个非常灵活的概念,除了可用于对
TS(Vue)中数组的
接口
类型
使用
首先出现的问题是,我需要一个数组list,数组中每一项需要是key:value形式的对象,但是当我需要新增一项到数组中
时
候,对于每一项即对象的
类型
出现问题,问题如下: 这是因为我
定义
了list
类型
为数组,但是并没有对其中的对象的属性进行
类型
定义
。 这里就需要使用TS的
接口
,我们需要自
定义
一下list数组
类型
,使用
接口
就可以自
定义
list中属性的
类型
。 先
定义
接口
: interface Iitem...
java超基础-
接口
篇+多态数组(重要)
java超基础-
接口
篇+多态数组(重要) 目录侠在此???????? 文章目录java超基础-
接口
篇+多态数组(重要)
接口
接口
的应用场景
接口
的使用细节
接口
小练习
接口
VS继承
接口
多态的特性多态数组(
接口
版本)
接口
的多态传递现象(就是
接口
直接的继承关系)
接口
小练习多态数组(
接口
版本)
接口
的多态传递现象(就是
接口
直接的继承关系)
接口
小练习结语
接口
接口
可以理解为一些规范性的操作处理
接口
就是给出一些没有实现的
方法
,封装到一起,到某个类要使用的
时
候,再根据具体情况把这些
方法
写出来,语法 interface 接
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章