社区
ATL
帖子详情
定义接口方法时,如何定义数组类型
liuliguo940
2003-10-20 10:08:31
定义接口方法时,如何定义数组类型(short类型)
...全文
321
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的对象。 ...
【TypeScript】005-对象的
类型
——
接口
与 数组的
类型
文章目录5、对象的
类型
——
接口
什么是
接口
简单的例子可选属性任意属性只读属性6、数组的
类型
「
类型
+ 方括号」表示法数组泛型用
接口
表示数组类数组any 在数组中的应用 5、对象的
类型
——
接口
在 TypeScript 中,...
ts
定义
数组
类型
_TS学习随笔(四)->数组的
类型
少侠们,今天我们继续来搞一搞TS今天我们要来看一看TS中数组的
定义
是个什么鬼样子数组的
类型
:在 TypeScript 中,数组
类型
有多种
定义
方式,比较灵活。下面我们来看看有哪些
定义
方法
「
类型
+ 方括号」表示法:最简单...
ts
定义
数组
类型
_ts基本
类型
TS中的常用的数据
类型
有 (内置
类型
)Number, String, Boolean, Null, Undefined, Void, enum,Array,Any,Object,元组,
接口
等数字
类型
例如 let decimal: number = 6;字符串let color: string = "blue";布尔
类型
...
ts
定义
数组
的
类型
ts的数组
类型
ATL
3,245
社区成员
48,537
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章