在接口函数中传递数组参数
2007-04-19 16:05
225 查看
应用:ocx、com
语言:vc++
实现:定义参数时,选择类型为VARIANT
例如:
BOOL CMap3DAXCtrl::AddTrackLines(LPCTSTR sName, short nCount, const VARIANT FAR& lonArray, long clr, short nLineWidth)
{
// TODO: Add your dispatch handler code here
double *lon;
lon=new double[nCount];
long ubound;
long lbound;
long dim=SafeArrayGetDim(lonArray.parray);
SafeArrayGetUBound(lonArray.parray,dim,&ubound);
SafeArrayGetLBound(lonArray.parray,dim,&lbound);
VARIANT* buf;
SafeArrayAccessData(lonArray.parray,(void**)&buf);
for(int i=0;i<nCount;i++)
lon[i]=buf->dblVal;
SafeArrayUnaccessData(lonArray.parray);
delete lon;
}
注: 如果接口供vc本身调用,则参数直接定义为指针型即可,如供其他语言如vb,c#等调用,怎使用下列方法。
例如在c#中使用:
Object []array=null;
AddTrackLines(sname,ncount,array,clr,1);
语言:vc++
实现:定义参数时,选择类型为VARIANT
例如:
BOOL CMap3DAXCtrl::AddTrackLines(LPCTSTR sName, short nCount, const VARIANT FAR& lonArray, long clr, short nLineWidth)
{
// TODO: Add your dispatch handler code here
double *lon;
lon=new double[nCount];
long ubound;
long lbound;
long dim=SafeArrayGetDim(lonArray.parray);
SafeArrayGetUBound(lonArray.parray,dim,&ubound);
SafeArrayGetLBound(lonArray.parray,dim,&lbound);
VARIANT* buf;
SafeArrayAccessData(lonArray.parray,(void**)&buf);
for(int i=0;i<nCount;i++)
lon[i]=buf->dblVal;
SafeArrayUnaccessData(lonArray.parray);
delete lon;
}
注: 如果接口供vc本身调用,则参数直接定义为指针型即可,如供其他语言如vb,c#等调用,怎使用下列方法。
例如在c#中使用:
Object []array=null;
AddTrackLines(sname,ncount,array,clr,1);
相关文章推荐
- jQuery Ajax传递数组到asp.net web api参数为空
- 关于指针和数组对申请内存malloc和作为参数传递的一些问题
- ajax传递给后台数组参数方式
- 给数据库传递组合字符串参数,类似数组的解决方法
- c语言一维数组做参数传递给函数:
- C++中数组参数传递
- 对3个数排序(学习数组和指针参数传递)
- 如何给SQL SERVER存储过程传递数组参数
- asp.net mvc ajax传递给后台数组参数
- 数组作为函数参数进行传递
- c/c++ 参数传递 - 数组
- [指针三]数组作为参数传递
- 数组参数传递时需要注意的事项
- Android-调用本地方法传递数组参数/NDK-JNI开发实例(五)
- js 函数中如何传递数组参数
- Jquery Ajax 传递数组参数
- AJAX传递对象或数组参数到SpringMVC的控制层(js到action)
- 数组作为函数参数时的传递问题
- shell 函数参数为数组传递
- C语言中,数组名作为参数传递给函数时,退化为指针