下载本文示例代码
天极开发精彩专题(VC类)
·Visual C 界面常用控件实例技巧
·Visual C 数据库编程快速入门
·防止Visual C 应用程序缓冲区溢出
·使用MFC开发ActiveX控件
·Visual C 线程同步技术剖析
·Visual C .NET编程基础讲座
·Visual C 图像处理编程讲座
·Visual C 下OpenGL开发框架与应用 一、开发工具 我本来想用的是.ocx控件,最后发现,对于自定义struct,它似乎是无能为力(有谁知道.ocx可以的话请联系我)。最后采用的是vc 6.0中的ATL。下面给出了如何调用含自定义结构的组件函数senddata,ReceiveData的方法。组件中的参数传递与下面的代码是一模一样的 ,这里不再重复。(该组件是应用于配电自动化中的,用以实现馈线自动化FA功能,本人自己设计开发)。 二、源码 这里介绍如何向控件传递自己的结构。调用组件函数的源代码如下:
int result;VARIANT LineVal;VARIANT DotVal;SAFEARRAY FAR * pLSA = NULL;SAFEARRAYBOUND dimension[1];dimension[0].lLbound =0;dimension[0].cElements = MAX*10;pLSA = SafeArrayCreate( VT_BSTR,1,dimension );Line FAR *pLineData=NULL;::SafeArrayAccessData(pLSA,( void HUGEP* FAR*) &pLineData );for (i=0;i
=0有过流数据 BOOL CutFlag;//跳闸标志};//在ATL的idl文件中需要声明如下:typedef[ uuid(D124B04A-C5F9-4a16-9671-1E67B75DB1A1), helpstring("NetWork Node Struct")]struct Line{ long id;//id号 BOOL Power;//有电标志 BSTR LineName;//线路名称 long StaPoint_x;//起点x long StaPoint_y;//起点y long EndPoint_x;//终点x long EndPoint_y;//终点y short EndType;//1 负荷 2 电源 0 其它 long Longth; BOOL ShCirFlag;//短路标志}Line;typedef[ uuid(D124B04A-C5F9-4a16-9671-1E67B75DB1A2), helpstring("NetWork Node Struct")]struct Dot{ long id; BOOL Power;//开合标志 BSTR DotName;//线路名称 long StaPoint_x;//起点x long StaPoint_y;//起点y long EndPoint_x;//终点x long EndPoint_y;//终点y short DotType;//可操作标志0 断路器不可遥控 1 断路器可遥控 2 刀闸 3 线路节点 4 变压器 short HighCurrent;//过流标志 BOOL CutFlag;//跳闸标志}Dot;
然后就可以随意使用这两种结构了。 三、结束语 需要更多代码,请看例子源码.但是组件QFA2004的源码不能提供,请原谅。同时希望有更好办法的高手们提供更好的传递自定义struct的方法。源码使用方法:首先应注册QFA2004组件 。regsvr32 c:\qfa2004.dll(c:\目录根据qfa2004.dll的目录更改),然后用VC 6.0打开,编译。
天极开发精彩专题(VC类)
·Visual C 界面常用控件实例技巧
·Visual C 数据库编程快速入门
·防止Visual C 应用程序缓冲区溢出
·使用MFC开发ActiveX控件
·Visual C 线程同步技术剖析
·Visual C .NET编程基础讲座
·Visual C 图像处理编程讲座
·Visual C 下OpenGL开发框架与应用 一、开发工具 我本来想用的是.ocx控件,最后发现,对于自定义struct,它似乎是无能为力(有谁知道.ocx可以的话请联系我)。最后采用的是vc 6.0中的ATL。下面给出了如何调用含自定义结构的组件函数senddata,ReceiveData的方法。组件中的参数传递与下面的代码是一模一样的 ,这里不再重复。(该组件是应用于配电自动化中的,用以实现馈线自动化FA功能,本人自己设计开发)。 二、源码 这里介绍如何向控件传递自己的结构。调用组件函数的源代码如下:
int result;VARIANT LineVal;VARIANT DotVal;SAFEARRAY FAR * pLSA = NULL;SAFEARRAYBOUND dimension[1];dimension[0].lLbound =0;dimension[0].cElements = MAX*10;pLSA = SafeArrayCreate( VT_BSTR,1,dimension );Line FAR *pLineData=NULL;::SafeArrayAccessData(pLSA,( void HUGEP* FAR*) &pLineData );for (i=0;i=0有过流数据 BOOL CutFlag;//跳闸标志};//在ATL的idl文件中需要声明如下:typedef[ uuid(D124B04A-C5F9-4a16-9671-1E67B75DB1A1), helpstring("NetWork Node Struct")]struct Line{ long id;//id号 BOOL Power;//有电标志 BSTR LineName;//线路名称 long StaPoint_x;//起点x long StaPoint_y;//起点y long EndPoint_x;//终点x long EndPoint_y;//终点y short EndType;//1 负荷 2 电源 0 其它 long Longth; BOOL ShCirFlag;//短路标志}Line;typedef[ uuid(D124B04A-C5F9-4a16-9671-1E67B75DB1A2), helpstring("NetWork Node Struct")]struct Dot{ long id; BOOL Power;//开合标志 BSTR DotName;//线路名称 long StaPoint_x;//起点x long StaPoint_y;//起点y long EndPoint_x;//终点x long EndPoint_y;//终点y short DotType;//可操作标志0 断路器不可遥控 1 断路器可遥控 2 刀闸 3 线路节点 4 变压器 short HighCurrent;//过流标志 BOOL CutFlag;//跳闸标志}Dot;
然后就可以随意使用这两种结构了。 三、结束语 需要更多代码,请看例子源码.但是组件QFA2004的源码不能提供,请原谅。同时希望有更好办法的高手们提供更好的传递自定义struct的方法。源码使用方法:首先应注册QFA2004组件 。regsvr32 c:\qfa2004.dll(c:\目录根据qfa2004.dll的目录更改),然后用VC 6.0打开,编译。
下载本文示例代码
VC利用控件传递自定义struct解决方案VC利用控件传递自定义struct解决方案VC利用控件传递自定义struct解决方案VC利用控件传递自定义struct解决方案VC利用控件传递自定义struct解决方案VC利用控件传递自定义struct解决方案VC利用控件传递自定义struct解决方案VC利用控件传递自定义struct解决方案VC利用控件传递自定义struct解决方案VC利用控件传递自定义struct解决方案VC利用控件传递自定义struct解决方案VC利用控件传递自定义struct解决方案VC利用控件传递自定义struct解决方案VC利用控件传递自定义struct解决方案VC利用控件传递自定义struct解决方案
阅读(174) | 评论(0) | 转发(0) |