属性结构如下:
ABC
|
---DEF
|
---XYZ我想做出带数组的属性,使它可以这样被调用
1)ABC.DEF(3).XYZ(是ABC.DEF(3).XYZ,而不是ABC.DEF.XYZ(3),后者我会,前者不会)2)其中传入传出XYZ的是一个BYTE的三维数组,XYZ的属性的get和put该怎么写??请问该如何做到,分数不够可以加!!!!!希望有高手不吝赐教,再重复一遍,分数不够可以再加,我现在只能加100分,我从不食言up者有分!!!!!!!!
ABC
|
---DEF
|
---XYZ我想做出带数组的属性,使它可以这样被调用
1)ABC.DEF(3).XYZ(是ABC.DEF(3).XYZ,而不是ABC.DEF.XYZ(3),后者我会,前者不会)2)其中传入传出XYZ的是一个BYTE的三维数组,XYZ的属性的get和put该怎么写??请问该如何做到,分数不够可以加!!!!!希望有高手不吝赐教,再重复一遍,分数不够可以再加,我现在只能加100分,我从不食言up者有分!!!!!!!!
解决方案 »
- 希望高手们给我一点提示,自动根据xml写的结构定义导出头文件.h
- 大侠求救,为什么无法进行断点调试???????在线等待!!!!
- 如何得到其它进程窗口的坐标
- vc数据库编程
- 求助高手!急不可待!
- 讨教GetProp/SetProp()两个函数的功能和用法(在线)
- 如何直接从CControlBar继承一个子类??
- 哪位大虾有directshow采集视频的资料?有没有MPEG4编解码的资料?见者有份
- 如何实现类似“关闭程序”对话框?
- 记得在文档中心看到一篇讲怎样去掉bcgcontrol library 评估版的版本说明,可现在找不到了
- 读侯捷《MFC深入浅出》所遇到的几个问题
- 全屏幕取词技术 我在网上下载了候捷的 深入浅出MFC ,但不能找到配书的代码望大家帮助
那我要实现byte类型的数组,该用哪个IEnumxxx??
是不是用SAFEARRAY??
接口定义用VARIANT:
Fun(VARIANT* Varray)
{
switch( Varray->vt )
{
case VT_ARRAY|VT_R4:
//add ur code here
case VT_ARRAY|VT_R8:
//add ur code here
}
}
比如: xyz(0), xyz(1) , xyz(2) 是具有三个元素的一维数组
xyz(0,0,0) , xyz(0,0,1)
xyz(0,1,0) , xyz(0,1,1)
xyz(1,0,0) , xyz(1,0,1)
xyz(1,1,0) , xyz(1,1,1)
是三维数组,每一维的元素个数分别是2,2,2 2 如果xyz真是三维数组,那么每一维各有几个元素
// Create a two dimensional array (2 rows x 5 columns)
SAFEARRAY * sa;
SAFEARRAYBOUND saDims[2];
saDims[0].lLbound = 1; // Lower bound of the first dimension
saDims[0].cElements = 2;
saDims[1].lLbound = 1; // Lower bound of the second dimension
saDims[1].cElements = 5;sa = ::SafeArrayCreate(VT_I4, 2, saDims);// Fill the array with data one element at a time
HRESULT hr;
long lIndex[2];
long lNum;
int r, c;for (r=1; r<=2;r++)
{
lIndex[0]=r;
for (c=1;c<=5;c++)
{
lIndex[1] = c;
lNum = c * r;
hr = ::SafeArrayPutElement(sa, lIndex, &lNum);
}
}// Get the data from the array
for (r=1; r<=2;r++)
{
lIndex[0]=r;
for (c=1;c<=5;c++)
{
lIndex[1] = c;
hr = ::SafeArrayGetElement(sa, lIndex, &lNum);
printf("%d\t", lNum);
}
printf("\n");
}// . . . Do something with the array . . . // Destroy the array when done
hr = ::SafeArrayDestroy(sa);
就假设是 BYTE abc[3,3,3];to facetoface(永远的菜鸟)
这段代码我知道,但是它是一个一个字节放一个一个字节取的,我这里要求运行效率极高,这样我怕会不会太慢了??to flyycyu(fly)
什么模板?to xpf_2000(萧丰)
我是放在vb或vc中用的,不会在script中用的,我查了以前的贴子,由于我的愚笨,还是未能找到答案,希望大侠再不吝指点一二,万分感谢
dim a(10) as byte
abc.def.f a(0),a(1),a(2)......a(9)
不太优雅,但简单2 如果数据量大,那么用SafeArray 是一种选择 ( VC, VB中都可以用)3 如果仅仅在VC中用,并且不是分布式应用,那么可以简单地将数组的地址以long 的形式传出,在客户程序中再将该 long 转换成 char* (处理不当容易引起非法访问)