一维、二维数组向SAFEARRAY转换
2008-08-07 13:15
176 查看
VARIANT中有一个成员是parray,它的类型是SAFEARRAY*。当把一个数组转换成VARIANT类型时,实质上就是与SAFEARRAY之间的转换。
这里以整型数组为例。
一维数组的转换在http://blog.csdn.net/primer_programer/archive/2008/08/06/2775106.aspx 这片文章中已说明。下面说一下二维数组的转换。
定义二维3*3的整形数组如下:
int arg2[3][3] = {1, 2, 1, <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
3, 4, -1,
0, 2, 0};
转换的方法:
VARIANT varArg1;
SAFEARRAY *psa;
SAFEARRAYBOUND rgsabound[2]; // 二维需要定义两个元素
rgsabound[0].lLbound = 0; // 一维的下界(下界就是下标的最小值)
rgsabound[0].cElements = 3; // 一维的元素的个数
rgsabound[1].lLbound = 0; // 二维的下界
rgsabound[1].cElements = 3; // 二维的元素的个数
long lIndex[2]; // 定义索引
psa = SafeArrayCreate(VT_I4, 2, rgsabound); // 按照二维数组分配空间
for (long k = 0; k < (long)3; k++)
{
lIndex[0] = k;
for ( long num = 0; num < (long)3; num++ )
{
lIndex[1] = num;
SafeArrayPutElement (psa, lIndex, &arg2[k][num]); // lIndex作为SAFEARRAY中的索引。
}
}
varArg1.vt = VT_ARRAY | VT_I4; // 类型
varArg1.parray = psa; // 赋值
SafeArrayDestroyData( psa );
这样就实现了整型数组到SAFEARRAY的转换。
这里以整型数组为例。
一维数组的转换在http://blog.csdn.net/primer_programer/archive/2008/08/06/2775106.aspx 这片文章中已说明。下面说一下二维数组的转换。
定义二维3*3的整形数组如下:
int arg2[3][3] = {1, 2, 1, <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
3, 4, -1,
0, 2, 0};
转换的方法:
VARIANT varArg1;
SAFEARRAY *psa;
SAFEARRAYBOUND rgsabound[2]; // 二维需要定义两个元素
rgsabound[0].lLbound = 0; // 一维的下界(下界就是下标的最小值)
rgsabound[0].cElements = 3; // 一维的元素的个数
rgsabound[1].lLbound = 0; // 二维的下界
rgsabound[1].cElements = 3; // 二维的元素的个数
long lIndex[2]; // 定义索引
psa = SafeArrayCreate(VT_I4, 2, rgsabound); // 按照二维数组分配空间
for (long k = 0; k < (long)3; k++)
{
lIndex[0] = k;
for ( long num = 0; num < (long)3; num++ )
{
lIndex[1] = num;
SafeArrayPutElement (psa, lIndex, &arg2[k][num]); // lIndex作为SAFEARRAY中的索引。
}
}
varArg1.vt = VT_ARRAY | VT_I4; // 类型
varArg1.parray = psa; // 赋值
SafeArrayDestroyData( psa );
这样就实现了整型数组到SAFEARRAY的转换。
相关文章推荐
- SAFEARRAY向一维、二维数组转换
- 将一维数组强制转换为二维数组
- 字符串分割成一维数组、二维数组,一维数组与二维数组之间的转换
- js将字符串转换为一维二维数组
- php将一维数组转换为每3个连续值组成的二维数组
- PHP二维数组(或任意维数组)转换成一维数组的方法汇总
- 二维数组转换为一维
- PHP实现一维数组转换成二维数组实例
- PHP二维数组(或任意维数组)转换成一维数组的方法汇总
- PHP二维数组(或任意维数组)转换成一维数组的方法汇总
- 一维数组转换成二维数组【C++】
- php 二维数组转换一维数组 array_column
- PHP二维数组(或任意维数组)转换成一维数组的方法汇总
- 一维List转换为二维数组
- C语言一维数组转换为二维数组
- php将一维数组转换为每3个连续值组成的二维数组
- php将一维数组转换为连续个数的二维数组
- 把一维数组转换成二维数组
- 字符串分割成一维数组、二维数组,一维数组与二维数组之间的转换
- js中将字符串转换为一维或者二维数组