ATL使用数组做参数

本文详细介绍了如何在ATL中使用VARIANT和SAFEARRAY处理数组参数,包括一维和二维数组的读取、排序和翻转。通过示例代码展示了在接口函数中接收VARIANT参数,转换为SAFEARRAY进行操作,以及如何将结果返回给调用者,如PHP。此外,还提供了PHP调用这些接口的示例。
摘要由CSDN通过智能技术生成
参考链接:  http://blog.sina.com.cn/s/blog_66ec4d6601016zfl.html
http://blog.csdn.net/win2ks/article/details/2528471



SAFEARRAY 和 CComSafeArray  的使用


VARIANT各种类型:
http://www.powerbasic.com/support/help/pbcc/variant_data_types.htm

一:一维数组
      首先 在ATL的接口中要使用 VARIANT*作为参数。
      如: STDMETHODIMP CarrayClass::arraySort(VARIANT* inarr, VARIANT* outarr)
      通俗来说VARIANT 是一种特殊变量,几乎可以表示各种变量。由于ATL接口函数中的char*等是单个指针,无法表示数组,所以使用 VARIANT*作为数组参数传入。具体VARIANT的说明不在这里赘述。参见参考链接,写的都很好。
       但是 VARIANT是很复杂的,而且容易出错,所以使用的过程中首先转为SAFEARRAY(要包含头文件#include <atlsafe.h>)
。而inarr->parray就是SAFEARRAY类型,所以不用重新定义一个变量。
      取数据的过程:
      1,获得SAFEARRAY的上下坐标,即数组容量
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值