社区
ATL
帖子详情
定义接口方法时,如何定义数组类型
liuliguo940
2003-10-20 10:08:31
定义接口方法时,如何定义数组类型(short类型)
...全文
317
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 的用法
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
定义
数组
类型
_ts基本
类型
TS中的常用的数据
类型
有 (内置
类型
)Number, String, Boolean, Null, Undefined, Void, enum,Array,Any,Object,元组,
接口
等数字
类型
例如 let decimal: number = 6;字符串let color: string = "blue";布尔
类型
let isDone: boolean = true;let bo...
ts
定义
数组
类型
_TS学习随笔(四)->数组的
类型
少侠们,今天我们继续来搞一搞TS今天我们要来看一看TS中数组的
定义
是个什么鬼样子数组的
类型
:在 TypeScript 中,数组
类型
有多种
定义
方式,比较灵活。下面我们来看看有哪些
定义
方法
「
类型
+ 方括号」表示法:最简单的
方法
是使用「
类型
+ 方括号」来表示数组:let tsArray: number[] = [1,1,2,3,4]数组中的项中不允许出现其他
类型
let fibonacci: num...
TS(Vue)中数组的
接口
类型
使用
首先出现的问题是,我需要一个数组list,数组中每一项需要是key:value形式的对象,但是当我需要新增一项到数组中
时
候,对于每一项即对象的
类型
出现问题,问题如下: 这是因为我
定义
了list
类型
为数组,但是并没有对其中的对象的属性进行
类型
定义
。 这里就需要使用TS的
接口
,我们需要自
定义
一下list数组
类型
,使用
接口
就可以自
定义
list中属性的
类型
。 先
定义
接口
: interface Iitem...
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章