Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14506364
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 20:59:20

下载本文示例代码
天极开发精彩专题(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解决方案
阅读(167) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~