电脑桌面
添加盘古文库-分享文档发现价值到电脑桌面
安装后可以在桌面快捷访问

VC开发范文

来源:漫步者作者:开心麻花2025-09-191

VC开发范文(精选12篇)

VC开发 第1篇

垃圾文件是操作系统使用过一段时间生成的冗余文件, 对操作系统来说是多余的, 一般来说, 每个一段时间应该给予清理, 从而使系统更加干净, 有助于节省磁盘空间, 从而提高系统运行效率。下面主要介绍基于VC++开发的垃圾清理软件的设计与实现, 包括功能的实现和界面的设计。

2 概述

垃圾文件清理, 即对指定的文件格式的临时文件或垃圾文件进行遍历、扫描、显示、删除清理等。在程序界面设计方面, 对默认对话框重新自定义绘制, 主要包括标题栏的重绘、对话框边框的重绘、对话框背景重绘、以及最小化按钮、最大化按钮和关闭按钮等的重绘实现。经过界面的设计和功能的实现开发, 从而开发出一款具有实用意义的垃圾清理工具。

3 编程平台与技术

实现的软件开发平台是基于Microsoft Visual Studio 2008集成开发环境, 编程技术采用Visual C++编程技术, 以及相关的开发软件如Photoshop CS5等。

4 需求分析

本程序的设计与开发主要分为两大模块, 功能的设计开发和应用程序界面的设计开发。

功能的分析与设计:垃圾清理功能主要包括文件遍历扫描、显示已扫描到的文件以及垃圾文件的删除清理等。用户需要一边进行文件扫描, 另一边可以对已经扫描到的垃圾文件进行清理操作。文件扫描通常会占用大量的时间, 为了提高垃圾清理的可靠性和效率, 应该使用多线程开发技术, 即将文件扫描的任务放置在一个单独的线程中即可。

应用程序界面设计:在对话框重绘中, 使用的主要技术有两个, 一个是绘制对话框的背景位图, 在对话框大小改变时能够输出位图, 使位图能够适应对话框的大小。另一个是在对话框的指定区域输出位图。

5 程序开发与实现

5.1 垃圾文件的扫描、显示和清理

(1) 创建一个基于对话框的工程, 工程名称为“Clear Tmp File”。

(2) 向对话框中添加静态文本框、按钮、组合框、列表框、进度条等控件, 效果如图1所示。

(3) 在对话框类CClear Tmp File Dlg中添加共有的主要数据成员, 各成员功能见注释部分:

(4) 向对话框类中添加Research File方法, 判读指定的目录, 将指定的垃圾文件类型显示在扫描结果列表中:

(5) 定义线程函数, 用来单独执行扫描查找垃圾文件任务:

(6) 处理“立即扫描”或“开始”按钮的单击事件, 创建一个新的线程执行扫描文件的任务:

(7) 清理已扫描到的垃圾文件, 即采用删除文件策略, 使用Delete File () 方法:

到此, 软件的主要功能部分都已经开发完毕, 下面将进行对软件界面的设计与开发。

5.2 程序界面的设计与实现

应用程序界面的设计包括两部分, 一部分是对话框自身的重设计, 二是对话框控件的重绘, 本程序主要对按钮控件进行重绘设计。

5.2.1 绘制对话框的背景位图

绘制对话框背景位图本文采用的是处理对话框的WM_PAINT消息, 该消息初始化时候对对话框进行绘制, 从而绘制背景位图。绘制背景位图的主要代码如下:

5.2.2 在指定的区域中输出位图

为了能够在指定的区域中输出位图, 需要使用设备上下文CDC类的Stretch Blt方法。由于我们需要在窗口的非客户区域绘制位图, 因此需要使用CWindow DC类的Stretch Blt方法, CWindow DC类派生与CDC类, 它提供了在窗口非客户区域绘制位图的功能。该方法数从源矩形中复制一个位图到目标矩形, 必要时按目前目标设备设置的模式进行图像的拉伸或压缩。输出位图的主要实现代码如下:

5.2.3 对话框绘制的实现

在对话框重绘的设计与实现过程中, 一般需要绘制的对话框区域主要有标题部分、边框部分和客户区部分。具体的区域划分如图2所示。

既然要对多个区域进行位图显示输出, 所以我们先封装一个bmp位图显示输出函数如下:

对各个区域进行位图输出重绘。由于标题栏以及边框主要都是非客户区域绘制, 因此应该在WM_NCPAINT消息中绘制。当然得先通过添加资源的方式将所用到的bmp位图资源导入到项目中。

在WM_NCPAINT消息对于的方法On Nc Paint () 中调用对话框绘制方法Draw Dialog () 。该方法的功能就是绘制对话框各个区域的位图。主要代码如下:

上面代码中最后的绘制对话框标题文本的方法Draw Title Bar Text () 的主要代码如下:

在完成对话框相应区域的位图后, 并没有完成任务, 还需要处理标题栏按钮的热点效果, 以及按钮的单击事件。首先得处理鼠标在非客户区域移动时的事件, 即WM_NCMOUSEMOVE消息, 在其消息处理函数中判断当前的鼠标点是否位于标题栏的按钮区域, 如果是则设置按钮的热点效果, 并且记录当前的按钮状态, 及鼠标点在哪个按钮上。同样, 处理对话框非客户区域的单击事件, 即WM_NCLBUTTONDOWN消息, 在其消息处理函数中完成单击事件操作。这部分的代码比较简单, 在此不予显示。

5.2.4 按钮控件重绘的实现

在MFC下编程, 很多时候对于标准的按钮控件不是很满意, 想要弄得美观些。这就需要按钮重绘。重绘按钮一般的实现方法就是重写CButton类。

首先给工程添加一个自绘按钮类My Draw Button, 基类为CButton。要想让按钮具备自绘功能, 就要为按钮添加BS_OWNERDRAW属性。为类CButton重载Pre Subclass Window虚函数。在该函数中添加如下一行代码:

当按钮控件具有了自绘功能之后, 每次控件状态改变都会触发Draw Item函数, 在该函数中来绘制按钮的形态外观, 所以第二步就要重载Draw Item虚函数。在这个函数中就可以自由发挥了, 比如绘制背景、底色、按钮标题、绘制文本字体样式等。

一般都会为按钮定义几种不同状态时的外观, 比如光标滑过时的状态, 按钮按下时的状态, 按钮禁用时的状态, 以及按钮的正常状态等。这就要为新的按钮添加几种重要的消息响应。比如WM_MOUSELEAVE消息, WM_MOUSEHOVER消息和WM_MOUSEMOVE消息等, 值得一提的是前两个消息的响应函数需要自己手动添加, 微软提供了一个Track Mouse Even函数在光标离开一个窗口时投递WM_MOUSELEAVE消息, 光标滑过窗口时投递WM_MOUSEHOVER消息。一般来说可以在WM_MOUSEMOVE消息响应函数中调用Track Mouse Event函数来投递WM_MOUSELEAVE消息和WM_MOUSEHOVER消息。然后在WM_MOUSELEAVE消息的响应函数中标记“光标已经离开按钮”, 然后调用Invalidate Rect函数让按钮重绘。在WM_MOUSEHOVER消息的响应函数中标记“光标正在按钮上方”, 并调用Invalidate Rect函数让按钮重绘。

(1) 绘制按钮背景样式, 即绘制背景bmp位图, 使得按钮具有自定义的样式, 同时在绘制按钮背景的输出位图时采用Transparent Blt () 函数, 该函数的作用是使窗体上显示位图的背景与窗体背景色融为一体, 不仅可以显示按钮bmp位图样式, 而且还可以使背景透明。

(2) 就是绘制按钮上的文本。主要绘制按钮上文本的样式, 包括字体大小, 字体样式, 字体颜色等属性。

(3) 实现不同状态下的按钮的外观样式, 主要包括WM_MOUSEMOVE和WM_MOUSELEAVE两个消息的消息处理函数。分别实现鼠标在按钮区域上和不在按钮区域上的状态。为了标记鼠标移动到按钮区域内停留, 需要用到一个定时器来标记鼠标是否还在按钮区域内停留。在WM_MOUSEMOVE内启动定时器, 触发WM_MOUSELEAVE消息时结束定时器即销毁定时器。定时器的主要代码如下:

重绘按钮类My Draw Button的主要实现代码如下:

定义的一些重绘用到的变量:

消息处理函数和定义的函数:

到此, 按钮的自定义重绘完成了, 接下来就可以使用自己重绘的按钮类My Draw Button了。首先往对话框中添加一个按钮控件 (以立即扫描按钮为例) , 假设它的ID值为IDC_TEST。进入类向导 (Class Wizard) 的成员变量属性页, 为IDC_BEGIN添加一个变量m_btn Begin。如下:

然后就可以调用My Draw Button的方法来设置按钮的样式了。如下:

到现在为止, 按钮类的重绘完成了, 可以随意定义自己喜欢的样式的按钮了。现在相对完善成形的一个垃圾清理工具软件就开发完了。

最后软件的运行效果界面如图3-图6所示。

6 结语

VC开发 第2篇

基于VC的MAPGIS二次开发-以烟台市环境地质信息管理系统为例

摘要:通过烟台市环境地质信息管理系统的设计,探讨如何将MAPGIS67SDK与Microsoft Visual C++6.0编程语言相结合,进行地理信息系统二次开发.作 者:吴玺 成建梅 常敏 作者单位:中国地质大学环境学院,武汉,430074期 刊:地下水 Journal:UNDERGROUND WATER年,卷(期):,32(3)分类号:X141关键词:MAPGIS二次开发 Microsoft Visual C++6.0 数据库

如此VC系列之七:私奔的VC 第3篇

VC界再次轰动了。不仅仅是VC界,整个互联网都被这条VC大佬私奔的消息震撼了。迅速地,新闻从线上传播到线下,连我那从来搞不懂VC为何物的老母亲都在电话上神秘地告诉我“你有个同行私奔了”。

在百度百科上查询“私奔”这个词,原义指女的不顾阻拦投奔所爱的人或一块儿逃跑,旧指女子未经婚嫁私自投奔所爱的人或跟他一起逃走。可见时代变迁,如今男的也可以私奔,而且已经婚嫁的男子也可以私奔。

私奔的现象如今确实少了。一则不行就离呗,现代人有几个还会想不开,搞一哭二闹三上吊的呀;二则即使原配硬挺着不离,养小二小三的不也大有人在嘛。这里并不想讨论该还是不该的问题,只是作为一种社会现象,它确实存在。

私奔的故事古今中外皆有之,也不至于引起如此轩然大波,搞得举国皆私奔:私奔之歌曲,私奔之电影,私奔之广告,甚至私奔之团购!如此之曝光率,如此之影响力,皆因这故事的主角是一个VC,知名的VC。如果是任何其他的人,都没有理由造成如此大的轰动,如此令人难以置信。VC是什么样的人啊,典型的精明、冷酷,能够准确计算得失,从不将自己置于不利位置。竟然,就是这样一个叱咤资本市场的大鳄,就在刚刚庆祝完自己项目美国上市,又带来数十倍回报的时候,做出了这样一个似乎未经任何计算,理智为感情绑架的行为。公众预期与实际故事的巨大落差是这一事件受到超常关注的重要原因。

事件的快速传播则受益于网络的力量。首先它源起于其本人的微博。古老的私奔故事里,主人公通常会给亲人留一个纸条,顶多纸条会传播多几个关注的人。然后这些人在遍寻不着,扼腕叹惜之后,就渐渐忘记这档子事,给予主人公想要的私密与平静。当这一消息出现在微博这样的公众平台上时,私奔就不再“私”了。你可能以为你不过与坐在旁边的朋友窃窃私语,谁知全礼堂的人都听见了,因为你是名人,就如同戴了扩音器,如同向世界宣告一般响亮。我们的VC朋友有幸成为微博宣布私奔的第一人……有炒作之嫌,也有人怀疑是替微博制造人气。

VC++开发简易考试系统 第4篇

关键词:局域网,数据库,ADO

1 需求分析

通常所见到的考试软件, 大多采用题库和答题、评分系统整合在一起的做法, 这对于非计算机专业的教师来说, 很难对试题和正确答案根据实际需求作出更改。

当教师需要根据自身教学进度和学生的实际情况出题并对试卷进行评分时, 能否有一种软件能满足教师的这种需求呢?本系统正是基于这种需求而开发的, 现对需求作如下简要说明:

(1) 系统的界面要简洁明了, 易于操作。

(2) 无需将试题与系统整合, 保持系统与试题的相对独立。

(3) 系统必须具有利用局域网收集考生答案的功能。

(4) 系统最多可收集50道单项选择题的答案。

(5) 系统必须具有判断考生答案对错并进行评分的功能。

2 出口系统设计

2.1 开发设想

(1) 利用Visual C++进行开发, 系统采用C/S结构。

(2) 在服务器端设置评分和得分查询功能。

(3) 客户端只设计一个答案提交的界面, 考生可以输入自己的学号、姓名和答案, 而试题的显示则由目前常用的字处理软件 (如:写字板、Word 2000等) 来承担。

(4) 系统使用SQL Server 2000数据库。

2.2 系统功能设计

根据客户的需求, 确定本系统需要完成的功能如下:

(1) 客户端可以使考生输入学号、姓名, 并根据试题选择答案。

(2) 客户端可以向数据库提交考生学号、姓名和答案。

(3) 客户端界面能够显示考试所用的时间。

(4) 服务器端可以输入考生的学号和姓名。

(5) 服务器端可以输入试题的正确答案。

(6) 服务器端可以判断考生答案的对错并进行评分。

(7) 服务器端可以查询考生的得分。

(8) 服务器端可以删除考生所提交的答案。

3 数据库设计

3.1 数据库需求分析

根据需求, 系统需要获得如下信息:

(1) 考生提交的信息:学号、姓名、题号、答案。

(2) 参加考试学生的信息:学号、姓名。

(3) 正确答案信息:题号、正确答案。

3.2 数据库中信息表的设计

如表1、表2、表3所示。

4 数据库操作

4.1 数据库对象的访问

ADO是Microsoft数据库应用程序开发的新接口, 是建立在OLEDB之上的高层数据库访问技术。在系统中添加了数据库连接类ADOConn, 利用ADO技术对数据库进行访问。

4.2 数据库表与记录集对象的设计

如表4所示。

5 功能开发

5.1 客户端程序的开发

首先, 创建一个基于对话框的应用程序, 并在对话框上添加相应的控件, 如表5和图1所示。

5.2 服务器端程序的开发

首先, 创建一个基于对话框的应用程序。然后在对话上添加四个命令按钮, 并将确定和取消按钮作相应改造, 如图2及表5所示。

评分模块的流程图, 如图3所示, 评分按钮的响应代码如下:

6 使用说明

教师只需要在自己熟悉的字处理软件中输入试题, 并在服务器端的软件中输入考生的学号、姓名和正确答案, 将试题文档和客户端软件放入共享文件夹, 考试时考生将试题文档和客户端软件复制到自己的桌面, 打开包含试题的字处理文档, 再打开客户端软件, 根据字处理软件中试题的内容, 在客户端软件上作答, 将答案输入完成后, 单击“交卷”按钮即可。

参考文献

[1]许日滨, 刘征, 孙英华.面向对象的编程向导Visual C++5.0.人民邮电出版社, 1998.

[2]宋坤, 刘锐宁.Visual C++程序设计自学手册.人民邮电出版社, 2008.

[3]王维玉.Visual C++6.0项目开发深度剖析.科学出版社, 2008.

VC类定义 第5篇

如果你定义了一个类(假设是A)那么声明一个A的对象的方法就是:

A a;// a 就是一个A的对象

A *a;// a 就是一个A的对象的指针

A a[N];// a 就是一个A的对象的数组

A fuctionName();// 返回A的一个对象的函数

上面是说如何定义对象,下面说如何定义一个类

最基本的:(运用关键字class)

class A{

public://公有变量及函数(没声明是public,private,protected的都默认为public,这个与Java是不同的,后者默认为protected)(可以在任意位置被访问)

......private://私有变量及函数(只能在类里面被访问)

......protecte://受保护的变量及函数(可以在派生类中被访问)

};//注意分号

一般构造函数,析构函数,复制构造函数都是在public里被声明的(不用我说什么是构造函数(construct)和什么是析构函数(destruct)了吧)。

更往深一层会有派生类,友元类,抽象类的概念。

派生类就是有一个已经存在的类来derive一个新的类,一般新的类跟原来的是被包含与包含的关系(否则声明一个派生类就没什么意义)具体实现如下:

class A: public B{

......//跟一个普通的类没什么区别

}

声明一个友元类是这样的:

class A: {

friend B

......}(A就成了B的友元类,友元函数的声明也类似)

不过要注意到,友元函数、友元类的大量使用破坏了类里的数据及函数的稳定性,或是可靠性。使得private类型的都可能被篡改。

最后抽象类:

VC“霸王条款”先行 第6篇

“我们要学习一下国外的VC和PE是如何进行风险控制。”在刚刚拿到证监会下发的券商直投牌照后,一位即将上任的直投公司财务总监对他的同事说道,“尤其要看看外资PE的投资条款清单。”

在美国,VC可能会突然出现在创业者面前,表示愿意与创业者携手努力,接着就拿出了这么一份投资条款清单。只有认真阅读这份清单,创业者很快就会从狂喜中清醒过来,因为清单中开列的条件,包括清算优先权和防止稀释条款等等,是那么地苛刻,甚至有人称之为“霸王条款”。

VC和PE在中国内地兴起的时间相当有限,南孚电池和蒙牛乳业等大项目尘埃落定之后,国内投资者才开始感慨资本运作的多样性。但是在国际市场,风险投资和杠杆收购已经经历了较长的发展时间,投资条款清单就是在VC等基金发展过程中,形成的重要风控手段。

不妨就来看看投资条款清单的重要款项——清算优先权。优先清算权是投资条款清单中一个非常重要的条款,它直接决定了被投资公司如果接受清算,蛋糕该怎么分配。在欧美,几乎所有VC都会选择认购可转换优先股(集合债务和权益工具于一体的证券)的投资方式,并约定必须获得清算优先权。也就是说,一旦企业因为并购或者破产发生清算事项,VC可以在债权人、创业者和团队之前抽回之前的投资资金。

更重要的是,不少投资条款清单上甚至列明了在清算前,VC可以收回的资金是最初投入资金的至少两倍,投资风险也就大大下降了。

“清算优先权只是其中一项。在那份十几页的投资条款清单里,有几十项这样苛刻的条件。”在香港中环皇后道的咖啡屋里,一位创业者回忆起了他接触VC的经历,“我觉得追随权(Tag Along Rights)”和“领售权(DragAlong Rights)更加让人难以接受。”

在欧美,基金入股之后,企业通常要单方面接受限售协议,基金的股票可以转让,而创业者的股票却有一段时间锁定期。追随权是规定基金可以制定某个限售股东转让股权,而其他股东必须追随基金留下,领售权则规定基金可以凭借一己之力处置企业,包括启动IPO和进行并购交易。

当然,各家都有自己的说辞,基金也肯定会对自己的“霸王条款”提出辩护。“提出严厉的投资条款,能够让我们做好风险控制。”在上海陆家嘴,一家外资VC的经理对笔者谈起了他们的看法,“我们投资的企业差异很大,但是投资条款清单中的款项非常标准化,应对各种项目都能够大幅降低投资风险。”

但是问题在于,中国的投资业务兴起时间不长,因此目前的法律体系也无法认同投资条款清单中的内容。以清算优先权为例,它与中国的《企业破产法》就存在冲突,基金根本无法在企业申请破产前获得优先偿付。

因此,投资条款清单更多地运用在离岸业务上。“在帮助企业海外上市之前,我们都会帮助它在海外成立特殊目的公司,然后我们的基金就和这家特殊目的公司签订投资条款清单。”某国际PE中国区负责人谈道,“由于双方法律主体都在海外,就可以更好地享受投资条款清单的保护性条款。”

随着政府成立产业投资基金发展,并开放证券公司直接投资业务牌照之后,国内VC和PE行业出现了高速发展,经理们也都开始努力把国际经验运用到基金管理业务中。

VC开发 第7篇

蓝牙 (Bluetooth) 是一种支持设备短距离通信的无线电技术, 能在包括移动电话、PDA、无线耳机、笔记本电脑以及相关外设等众多设备之间进行无线信息交换。蓝牙采用分散式网络结构以及快跳频和短包技术, 支持点对点和点对多点通信, 工作在全球通用的2.4GHz ISM (即工业、 科学、医 学 )频段, 其数据速率为1Mb/s, 采用时分双工传输方案实现全双工传输, 使用IEEE802.15协议。根据发射输出电平功率不同,蓝牙传输有3种距离等级: Class1为100m左右; Class2约为10m; Class3约为2-3m。

接下来将通过开发一个程序实例, 讨论在Windows系统下, 两台PC机通过蓝牙进行文本信息收发和文件传输的通信程序设计方法。程序 的开发运 行环境为 : VS2008、WindowXP SP3、蓝牙适配器。

2 蓝牙协议栈

协议栈是指一组协议的集合, 蓝牙协议栈是SIG (SpeciaInterest Group) 定义的一组协议的规范 , 目标是允许遵循规范的蓝牙应用能够进行相互间操作。蓝牙协议栈如图1所示。

目前在Windows平台上实现的蓝牙协议栈主要如下:

( 1) Widcomm: 第一个Windows上的协议 栈 , 由Widcomm公司开发 , 也就是现在的Broadcom。

(2) Blue Soleil: 由IVT公司开发 , 可用于桌面和嵌入式系统。

(3) Microsoft Bluetooth Stack: 由微软公司开发 , 在Windows XP SP2及以上版本中内建的协议栈。

上面这些协议栈都提供了SDK开发包, 开发者可以使用开发包提供的API开发自己的蓝牙应用。但是这些协议栈之间存在兼容性问题, 开发者必须针对具体的协议栈进行开发。由于微软的蓝牙协议栈已经内建在系统中, 所以一般选择Microsoft Bluetooth Stack来进行开发。开发者可以使用微软SDK中的Microsoft Bluetooth API, 也可以使用Win Sock, 二者都能实现蓝牙设备的查找、服务的发现、配对等。由于大部分蓝牙设备都提供虚拟串口服务, 所以可以使用系统中的虚拟串口进行数据通信, 也可以使用网络编程、服务器监听或客户端连接的方式来进行数据通信。

在VS2008中包含了 开发蓝牙 应用的SDK, 但是在VS2008以前的版本中 , 如VS2005、VC++6.0等 , 没有包含蓝牙SDK, 需要安装微软提供的Platform SDK。对于VC++6.0,最后一个 受支持的Platform SDK是2003年2月版。对 于VS2005, 可以安装Windows Server 2003 R2 Platform SDK, 其完整的文件名是5.2.3790.2075.51.Platform SDK_Svr2003R2_rtmimg, 文件大小是409MB左右 , 可以将文件名后缀img直接改成iso。

3 蓝牙通信程序设计

程序使用网络编程的方式, 采用服务器/客户端模式来进行蓝牙数据通信。客户端的执行流程是:(1) 搜索本地蓝牙设备, 即扫描本机上的蓝牙设备并显示;(2) 搜索远程蓝牙设备, 即扫描本机附近的蓝牙设备并显示;(3) 创建客户端套接字;(4) 发送连接请求, 连接选定的服务器, 即远程蓝牙设备;(5) 开始通信, 传输文件或收 发文本信 息 ;(6)断开连接, 客户端向服务器发送或收到服务器发送的断开连接请求时 , 即可实现 通信的断 开。服务 器的执行 流程是 :(1) 搜索本地蓝牙设备 , 即扫描本机上的蓝牙设备 并显示 ;(2) 创建服务器套接字 ; (3) 绑定套接字到本地蓝牙设备 ;(4) 建立连接 , 使用listen函数开始监听远程设备的连接 请求, 使用accept函数接受连接并返回一个用来与客户端通信的套接字;(5) 开始通信, 传输文件或收发文本信息; (6)断开连接, 服务器向客户端发送或收到客户端发送的断开连接请求时, 即可实现通信的断开。程序的运行界面截图如图和图3所示。

程序实现了服务器和客户端的功能, 将服务器和客户端做在同一个对话框界面上, 使用时用户可以选择服务器模式或者客户端模式, 也可以同时使用服务器模式和客户端模式。程序中除了主线程之外, 还设置了5个子线程, 分别是服务器监听线程、服务器接收数据线程、服务器发 送文件线 程、客户端接收数据线程和客户端发送文件线程。采用子线程方式, 可以很好地改善主线程的人机交互体验。

需要注意的是, 由于使用的是微软 实现的蓝 牙协议栈 ,所以蓝牙适配器的驱动应该 使用Windows系统自带 的驱动 ,不能使用第三方的蓝牙驱动。

4 关键代码实现

要使用Microsoft Bluetooth API进行蓝牙开发, 首先需要包含相关的头文件和导入库, 代码如下:

还要在程序开始时, 执行一次Win Sock库的初始化, 在程序结束时, 相应执行一次Win Sock库的清理, 代码如下:

4.1搜索本地蓝牙设备

搜索本机的蓝牙设备并显示, 代码如下:

4.2搜索远程蓝牙设备

搜索本机附近的蓝牙设备并显示, 代码如下:

4.3启动本地蓝牙设备

启动本地蓝牙设备作为服务器, 响应远程客户端的连接,代码如下:

4.4连接远程蓝牙设备

本机蓝牙设备作为客户端, 连接远程服务器设备, 代码如下:

4.5服务器发送信息

在服务器模式, 发送信息给客户端, 代码如下:

4.6客户端发送信息

在客户端模式, 发送信息给服务器, 代码如下:

4.7服务器发送文件

在服务器模式, 发送文件给客户端, 采用线程方式, 代码如下:

4.8客户端发送文件

在客户端模式, 发送文件给服务器, 采用线程方式, 代码如下:

4.9服务器监听线程

监听并接受客户端的连接请求, 代码如下:

4.10服务器接收信息线程

接收客户端发来的文本信息和文件数据, 代码如下:

4.11服务器发送文件线程

发送文件数据到客户端, 代码如下:

4.12客户端接收信息线程

接收服务器发来的文本信息和文件数据, 代码如下:

4.13客户端发送文件线程

发送文件数据到服务器, 代码如下:

5结语

讨论了在Windows系统下, 使用Microsoft Bluetooth API,实现两台PC机之间通过蓝牙进行文本信息收发和文件传输的程序设计方 法 , 并用VC++2008编写程序 实例 , 在WindowsXP SP3和Win8.1下测试通过。

摘要:探讨了在Windows系统下,使用Microsoft Bluetooth API实现两台PC机之间通过蓝牙进行文本信息收发和文件传输的程序设计方法,并用VC++2008编写程序实例,在Windows XP SP3和Win8.1下测试通过。

基于VC绘画板的开发与应用 第8篇

当今绘图软件种类繁多,国外有Photoshop、Adobe Illustrator、Fireworks等软件,国内流行的有Windows自带的画图板、金山画王、我行我素等。除了Windows自带的画图板以外,这一系列软件功能强大,但是操作复杂,不易于初学者或者一些简单需求的用户使用,因此编写一款轻便小巧的简易绘图工具,可以完成一些简单的图形绘制操作,能够使得用户得心应手。

1 概述

1.1 设计要求

具体要实现简易绘画板的设计与制作,能够完成基本的点、线、面的绘制;具有喷枪和填充功能;能够绘制曲线;控制线条的颜色、粗细和类型;具有简单的操作界面和较为完善的功能设置;使用户能够绘制出比较具有审美观点和艺术价值的绘画作品。

1.2 功能介绍

(1)铅笔功能模块

模拟铅笔画图的效果,当用户点击工具栏中的铅笔按钮后,将鼠标移动到绘画区域,按下鼠标左键不放并拖动鼠标,鼠标经过的区域则留下一道铅笔的笔迹,直到松开鼠标左键为止。用户可以根据自己的需要绘制图形,使用铅笔功能模块绘制、编辑图形。

(2)绘制矩形功能模块

方便用户绘制矩形的功能模块。当用户点击工具栏中的矩形绘制按钮后,将鼠标移动到绘画区域,按下鼠标左键不放并拖动鼠标,系统能够根据用户按下鼠标左键的点的坐标位置以及拖动至松开鼠标左键的点的坐标位置,确定矩形的左上角点的坐标以及右下角点的坐标或者是左下角点的坐标和右上角点的坐标,也就是起点与终点的坐标最终确定该矩形。用户可以根据自己的需要,使用绘制矩形功能模块方便、快捷的绘制矩形。

(3)文字编辑功能模块

用户可以通过文字编辑功能模块在绘图的过程中加入汉字、字母、数字等文字信息。当用户点击工具栏中的文字编辑按钮后,将鼠标移动到绘画区域,点击鼠标左键后,光标将在点击位置闪动,然后用户敲击键盘可以将文字输入至光标所在位置直到用户停止输入。用户可以根据自己的需要,使用文字编辑功能模块添加文字,使图片的内容更加丰富多彩。

(4)绘制多边形功能模块

方便用户绘制多边形的功能模块。当用户点击工具栏中的多边形绘制功能按钮后,将鼠标移动到绘画区域,按下鼠标左键拖动到任意位置,松开鼠标左键则绘制完所绘多边形的一条边,此时系统能够自动记录用户松开鼠标左键的点的位置的坐标,随后用户可以左键点击绘画区域的任意一点,系统将自动与前次所记录的点连接起来形成多边形的下一条边,直到用户完成所需多边形的绘制。当用户未完成多边形的绘制,即所绘制的多边形没有封口,而选择其他功能模块继续绘制时,系统会根据用户选择多边形绘制功能模块后第一次按下鼠标左键的点的位置与用户在退出多边形绘制功能模块后所左键点击的最后一个点的位置相连接,从而自动完成多边形的绘制。用户可以根据自己的需要,使用绘制多边形功能模块简单、方便的完成多边形的绘制。

(5)调色板编辑功能模块

当用户需要编辑画笔、画刷、喷枪以及矩形、椭圆、多边形绘制的色彩时,则在调色板右侧,根据RGB三原色原理以及用户需要,鼠标拖动红、绿、蓝下的滑块,从而进行调色,然后执行其他功能模块即可。在使用其他绘制功能模块时将使用色板中所调的颜色。用户可以根据自己的需要,使用色板编辑功能模块对绘制工具进行调色。

1.3 系统运行环境

Windows 2000、Windows XP或者更高;

IBM-compatible PC,Pentium 200 MHz或者更高;

64 MB RAM;

24-bit(800 x 600)色彩分辨率;

编程语言:VC++。

2 绘画板的分析与设计

2.1 设计准则

为了评价该设计阶段的设计表示的“优劣程度”,必须遵循几个准则。

(1)软件设计应当表现出层次结构,它应巧妙地利用各个软件部件之间的控制关系。

(2)设计应当是模块化的,即该软件应当从逻辑上被划分成多个部件,分别实现各种特定功能和子功能。

(3)设计最终应当给出具体的模块(例如子程序或过程),这些模块就具有独立的功能特性。

(4)应当应用在软件需求分析期间得到的信息,采取循环反复的方法来获得设计。

其绘画板的设计结构图如图1所示。

2.2 界面设计

系统界面布局分为5个部分:顶部第一横向工具栏(在标题栏下方包括文件、编辑、绘图、查看、帮助、设置按钮),下方为第二横向工具栏(在第一横向工具栏下方包括线形、线宽、画刷种类下拉菜单),右端为纵向工具栏(出现在应用程序窗口最右侧,包括铅笔、毛笔、喷枪、橡皮擦、矩形、椭圆形、多边形、放大、缩小、文字编辑、喷枪一系列按钮),中部为用户绘图区域,应用程序最右端上部是色板,色板上有RGB控制滑块,包括红、绿、蓝三种,其后分别显示当前的RGB值。如图2所示。

3 绘画板的实现

简易绘画板系统按照功能模块可分为工具栏模块、铅笔模块、毛笔模块、画刷模块、绘制圆形(包括椭圆)模块、绘制矩形模块、绘制多边形模块、文字编辑模块、橡皮擦模块、图片加载模块、图片保存模块、放大模块、缩小模块、色板模块、喷枪模块。通过这些模块可以实现图片的简单绘制以及编辑,能够完成基本的点、线、面的绘制;具有喷枪和填充功能;能够绘制曲线;控制线条的颜色、粗细和类型;具有简单的操作界面和较为完善的功能设置;使用户能够绘制出比较具有审美观点和艺术价值的绘画作品。

3.1 铅笔模块设计

画笔是绘图的基本工具,在MFC中画笔是CPen类的对象,它可以在DC(设备描述环境)中完成绘制线条的任务。DC在初始化时,就自动自动配备了一个黑色的默认画笔。

首先定义画笔,即创建画笔对象,调用CPen类的构造函数,它的原型:

CPen(int style,int width,COLORREF color);

参数style用来定义画笔的样式,由系统提供;

参数width用来以像素为单位设置画笔的宽度;

参数color用来以RGB值设置画笔的颜色。

在创建了画笔以后,必须使用CDC的成员函数Select Object把画笔载入DC,以替换DC中原来配置的默认画笔,然后才能使用该画笔绘制线条。最后调用On Draw函数进行绘图。代码如下:

工具栏中的画笔按钮

}

void CPaint View::On LButton Up()松开右键消息处理函数中关于画笔的代码:

case DRAW_LINE:

p Shape=new CLine(m_pt Start Point,m_pt End Point,Set_Color,m_n Width,m_n Pen Style);

p Doc->Add Shape(p Shape);//将绘制的图形作为对象存储到对象数组中

p Doc->Update All Views(NULL);//更新所有视图

Cpen对象在MFC中占有重要地位。

3.2 绘制矩形功能模块

绘制矩形功能模块与铅笔模块流程相似,首先定义画笔并创建自己的画笔,当然如果采用默认的画笔则不用再另外定义画笔,然后将所定义的画笔载入设备描述环境中。用户点击绘制矩形功能按钮系统将调用On Rectangle函数。当用户在绘图区域绘制矩形时,将产生WM_PAINT消息,进入消息响应队列,当用户松开鼠标左键后,系统自动调用On Draw函数进行矩形绘制。代码如下:

void CPaint View::On LButton Up()松开右键消息处理函数中关于绘制矩形的代码:

case DRAW_RECTANGLE:

p Shape=new CRectangle(m_pt Start Point,m_pt End Point,Set_Color,m_n Width,m_n Pen Style,

m_n Brush,m_b Line Brush);

p Doc->Add Shape(p Shape);//将绘制的图形作为对象存储到对象数组中

p Doc->Update All Views(NULL);//更新所有视图

3.3 文字编辑功能模块

显示文本要使用CDC类的成员函数Text Out,它的原型为:

BOOL Text Out(int x,int y,const CString&str)

其中,参数x为文本显示在应用程序窗口用户区的水平位置;y为文本的垂直位置;str为要显示的字符串,它是一个CString的对象。

为了准确显示文本,Windows用一个TEXTMETRIC结构类型的数据来存储字体的信息,但是通常获得字体的信息是使用CDC类的成员函数:

BOOL Get Text Metrics(LPTEXTMETRIC lp Metrics)const;

其中,参数lp Metrics是用户定义的一个TEXTMETRIC结构类型数据的指针。在试图类On Draw()函数中使用该函数获得字体的信息。

4 总结

本文针对绘画板的设计进行研究,首先介绍了绘画板的概述,重点描述了绘画板系统的功能,其次对绘画板进行分析和设计,最后并对绘画板的具体实现进行了描述,重点描述了铅笔模块、绘制矩形模块和文字编辑功能模块,并给出了部分核心代码。由于篇幅所限,对于其它功能在此并没有给出。对此感兴趣的读者,可以在此基础之上,进一步的完善,实现自己的绘画板系统。

参考文献

[1]田小林,王建华.MG-12864-2液晶显示器的应用设计[J].现代显示,2004.

[2]向健勇等.寄语SAA7114H的视频图像采集系统的设计[J].现代显示,2004.

[3]曾建潮.软件工程.武汉理工大学出版社,2003.8.

VC开发 第9篇

随着科学技术日新月异的发展,各种仪器的功能逐渐完善和增强,其复杂程度和科技含量越来越高,随之带来了维修以及培训费用的急剧增长。在以往人们通常采用实物样机模拟真实产品来进行技术人员的培训,因此培训开发的成本较高,样机易损坏。传统仪器主要包括三个部分:数据采集与控制、数据分析、数据显示。借助PC机作为其数据分析与显示的工具并利用强大的图形环境和数据处理能力,建立图形化的虚拟仪器面板,完成对仪器的控制、数据分析与显示。这种包含实际仪器使用、操作信息的软件与PC机结合构成的仪器,就称为虚拟仪器。用于虚拟仪器显示的人机界面就是虚拟仪器软面板。由于虚拟仪器充分利用了计算机的软硬件资源,构成的测试系统具有灵活、高效、成本低的优点,成为测试系统发展的主流。而虚拟数字键盘在数据采集与控制中是必不可少的。传统的虚拟数字键盘的设计采用直接程序设计的方法,虽然能满足设计需要,但其这种实现方式重用性差、灵活性不强。VC++6.0集成开发环境为我们提供了许多标准的控件,如按钮控件、编辑控件、组合框控件等。但是,这些控件无法满足用户的需要,因此经常还需要定制自己的特定控件。而利用Active X技术开发可重用控件是一种理想的方法。本文介绍了一种用Active X技术设计虚拟数字键盘用于输入和显示频率。

2 虚拟数字键盘控件设计

虚拟数字键盘控件不但要求控件外观与现实数字键盘的外观相像并具有相应的功能,而且通用性要强。本文采用Active X设计数字键盘。Active X在广义上是指微软公司的整个COM架构,但是现在通常用来称呼基于标准COM接口来实现对象连接与嵌入的Active X控件。后者是指从VBX发展而来的,其生成文件以OCX为扩展名的OLE控件。通过定义容器和组件之间的接口规范,如果编写了一个遵循规范的控件,那么可以很方便地在多种容器中使用而不用修改控件的代码。简言之,Active X使用COM实现Windows程序之间的通信,用户可以像使用Windows标准控件那样使用它,程序开发人员利用它可开发可重用的应用程序或模块。设计虚拟数字键盘控件实际上就是创建一种新类,并且Active X控件具有事件触发功能,Active X控件通过触发事件来通知容器有重要动作(如我们完成F1键的功能时,能够向容器程序发送该事件)。下面我们利用VC++6.0开发工具,开发一个用于输入频率的数字键盘,工程名字为My Work。其具体实现步骤如下:

(1)功能分析

在开发控件之前,先要分析、整理用户需求,建立完整的分析模型,将其编写成需求规格说明。需求规格说明明确地描述了控件的功能,列出必须满足的所有约束条件,并定义的输入和输出接口。

(2)设计控件

设计阶段的目标是决定控件怎么做,并且依据需求规格说明文档,确定虚拟数字键盘的实现算法、数据结构和接口等。设计控件主要集中于数据结构、用户界面和算法等方面,同时还有将现实的问题模型转换成计算机的实现模型。

(3)控件实现

控件实现阶段是将所设计的控件模块编写成计算机可执行的程序代码。

(4)控件测试

当Active X控件完成后,可以插入任何软面板容器中运行,但所有的Active X控件必须在注册之后才能使用。可以通过windows内的运行regsvr32命令,再在其后输入想要注册的Active X控件的完整路径。本例在Active X Control Test Container中插入控件进行测试。插入控件后,就可以进行输入数字并显示在该控件的液晶屏幕上,同时触发事件给容器。该控件测试完成后,就可用于任意虚拟软面板设计中。

3 控件实现方法

下面讨论如何运用Active X开发虚拟数字键盘控件的实现方法。其示意图如图1所示。

3.1 控件的属性设计

在开发程序中使用Variable name访问控件的属性,而在外部使用该控件时,使用的是External name访问控件的属性。这里,我们将新添加的频率属性的外部名称设置为n Frequecny,类型选择为short,变量名称自动被设置为m_nFrequecny,C1assWizard为该控件自动增加了一个通知函数:OnNFrequencyChanged(),当在外部修改该属性时,这个函数将被调用。然后按照此方式再添加其他属性,液晶屏幕背景灯开关bLightSwitch、类型为BOOL,数字键盘开关bTurnOnOff、类型为BOOL等。

3.2 控件的方法设计

同样,利用C1assWizard来完成添加显示频率方法。首先打开C1assWizard对话框,选择Automation选项卡,注意:在此属性页上,class name这一选项一定要选择CMy WorkCtrl。然后,单击[Add Method]按钮。该对话框中提供了几个选项,其中外部名称(External name)是给外部程序使用控件的方法时使用的,这里,我们可以将其设置为DisplayFrequency。系统自动为该方法提供了一个内部名称(Internal name):DisplayFrequency,这个内部名称是在控件内部使用的方法名称,它可以与外部名称不一样。然后将返回类型(Return type)设置为void。然后按照此方式添加其他方法,初始化设备void InitialDevice(short nFrequency)等。

3.3 控件的事件设计

在VC++中,为了给Active X控件增加自定义事件,同样可以利用C1assWizard来完成,与上面添加标准事件的过程是一样的。另外,也可以在工程的C1assView选项卡上,用鼠标右键单击_DC1ockEven}s接口,并从弹出的快捷菜单中选择【Add Event...】菜单项,从而也可以打开添加事件对话框。利用该对话框,我们为Clock控件增加一个自定义的事件,将新添加的这个事件的外部名称设置为:FrequencyChanged,系统将自动将该事件的内部名称设置为:FireFrequencyChanged.在CMy WorkCtrl类中增加了一个FireFrequencyChanged方法。在控件内部,就可以调用FireFrequencyChanged方法向容器发出频率已改变的事件通知,而在此方法内部,它会调用_DMy WorkEvents接口中的FrequencyChanged方法向容器发出事件通知。自动生成的FireFrequencyChanged方法的实现。由于篇幅所限,不能在此详细列出实现该控件的源程序。

4 主要编码介绍

5 结束

本文设计的Active X虚拟数字键盘控件用于电台虚拟维修系统软面板中,取得了令人满意的效果。如需参考源代码,可以与作者联系。

本文作者创新点:运用VC++设计一种Active X虚拟数字键盘控件。该控件克服以往在虚拟数字键盘开发过程中所暴露出的重用性差、灵活性不强等问题。

参考文献

[1]余英等.Visual C++实践与提高ActiveX篇.北京:中国铁道出版社,2001

[2]黄璐璐等.VC++6.0环境下GPIB虚拟仪器的设计.微计算机信息,2004,(5)

[3]第一时间工作室VisualC++程序设计技能百练.北京:中国铁道出版社,2004

VC开发 第10篇

关键词:串行通信,VC++,MFC

1 引言

串行通信因其具有连接简单、使用灵活方便、数据传递可靠、低成本等优点,在外设与接口电路信息交换、实时监控和远距离传输领域得到了广泛应用。在此主要讨论了Windows环境下利用VC++6.0平台开发串行通信程序的问题,结合工程实践,提出了一种更加高效的开发方法。

2 程序开发

2.1 实现

Windows平台下串行通信程序通常可以用以下两种方法实现:

(1)利用Active X控件编程。

(2)利用API通信函数编程。

使用Active X控件,程序实现非常简单,结构清晰,缺点是欠灵活;使用API通信函数的优缺点则基本上相反。

2.1.1 MSComm控件在串行通信中的应用

Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的Active X控件,它为应用程序提供了通过串行接口收发数据的简便方法。MSComm提供了事件驱动(Event-driven)方法和查询法两种通讯方式,已经可以满足绝大多数程序的需要。MSComm控件有许多重要的属性,其中首要的几个如表1所示。

利用这些属性可以方便地编写串行程序,Active X控件的简洁、高效使其在大量通信程序中被采用。但是由于在Active X技术下一个串行口只能对应于一个单独的MSComm控件,如果程序要通过多个串行口与多台设备通信,就需要对多个控件进行处理,这样程序的开发就会显得繁琐也缺乏灵活性。如果程序开发需要使用多线程技术,利用MSComm控件也是难以实现的。因此要编制复杂的尤其是多串口多线程的通信程序,一般不使用MSComm控件而利用Windows API通信函数进行较底层编程。

2.1.2 API通信函数在串行通信中的应用

Windows API是所有Windows应用程序的基础。具体说,API就是一系列例程,应用程序通过调用它们来实现服务。Windows提供的串行通信API主要有:

利用Windows API可以实现非阻塞通信(也就是异步通信)程序的开发。在CPU处理任务比较繁重、与外围设备中有大量的通信数据时,更有实际意义。但是编写Windows API通信程序比较困难,它要求编程人员必须熟悉底层Windows API编程、多线程技术,并且编写的程序可移植性较差。通过对一个开源的功能强大的串口类Cserial Port的使用可以高效地实现多线程串口编程。

2.2 Cserial Port类的实际应用

在实际科研试验中,经常需要获取一些仪表、数字设备的信息。下面通过一个利用串行通信程序实现获取某研究堆功率测量系统数据的实例,来说明一种更高效程序开发方法。

要获取的信号来源为核测量系统输出的RS-485信号,其通信协议如表2所示。

从协议上看,信号源是一个定长的(27字节)的数据包。对于开发的系统来说只需得到核功率的数值就可以了,包括6个字节的汉字内码、6个字节的ASCⅡ码及4个字节的字母的ASCⅡ码,即数据包的11到26字节。需要开发的程序的主要任务就是分析收到的数据包,提取出这些有用数据。有用信息被处理并采用一定规则的方式储存后,采用专业LED生产厂商提供的LED显示屏实现对功率信息的实时显示。该系统的组成如图1所示。

2.2.1 基于Cserial Port类的串行通信程序开发

Cserial Port类是一个采用Windows API技术开发的串行通信类。这个类是基于多串口的、多线程技术,只需要添加这个类到要编写的程序框架中,就可以使用它的功能及成员函数了,并且由于该类是开源的,用户可以根据需要对这个类进行必要的改进。

其工作流程是:首先设置好串口参数,再开启串口监测线程,串口监测工作线程监测到串口接收到的数据、流控制事件或者其他串口时间后,就以消息方式通知主程序,激发消息处理函数进行数据处理;发送数据可以直接向串口发送。

2.2.2 串行通信程序的实际开发

程序的开发步骤:

(1)建立程序窗口框架

建立一个基于单文档的MFC应用程序SCPort Test,利用VC6.0平台生成用户界面。添加并注册必要的界面控件,界面如图2所示。

(2)添加Cserial Port类文件

将Serial Port.h Serial Port.cpp两个类文件复制到工程文件夹中,用Project-Add to Project-Files命令将上述两个文件加入工程,并在SCPort Test View.h中将头文件Serial Port.h说明:#include"Serial Port.h"。

(3)人工增加串口消息响应函数

首先在SCPort Test View.h中添加串口字符接收消息WM_COMM_RXCHAR(串口接收缓冲区内有一个字符)的响应函数声明。

程序采用事件驱动来实现数据的实时接收,事件驱动消息机制会在接受串口收到一个字节数据后启动,激发消息响应函数On Comm(WPARAM ch,LPARAM port)来对事件作出反应。为消息响应函数添加数据接收处理功能如下:

此函数实现了对信号源(核测量系统输出的RS485信号)协议的解释功能,完成了对数据包的实时接收,对数据包进行了校验,解释编码并且提取出了所需的堆功率信息,并将有用数据以TXT文件格式保存。

(4)初始化串口

利用Class Wizardr生成On Initial Update()函数,并在Serial Port.h文件中说明在程序中要用到的全局变量。

至此,功率显示系统程序的开发基本完成。

3 结语

随着设备数字化程度的不断提高,计算机与外设的通信问题也变得越来越普遍。利用串行编程技术,可以解决很多科研或者工程中的实际问题。所采用Cserial Port类可以高效地开发多线程、非阻塞的高质量的串行通信程序。实践证明,采用该技术开发的程序运行稳定,执行效率较高。

参考文献

[1]李现勇.Visual C++串口通讯技术与工程实践[M].人民邮电出版社,2002.

[2]王伟,王敏.多线程技术在串口通信中的应用及实现[J].计算机应用与软件,2004,(2).

[3]潘爱民.COM原理与应用.北京:清华大学出版社,1999.

VC向前 天使向后 第11篇

总结下来,笔者的整体印象是:从行业上来分析,与往年集中在节能环保领域有所不同,今年的热点主要集中在云计算与物联网领域。而从项目的阶段来看,比较有特色的项目主要集中在互联网领域,主要是该领域的中早期项目。

应该说,时至今日,越来越多的VC开始将更多的目光聚焦到早期项目,创投行业的格局悄然发生变化。

那么,当越来越多的目光开始关注早期项目,整个创业投资的链条会发生怎样的变化?笔者简单总结为:VC向前,天使向后。

中国资本市场起步较晚,起步阶段又多年面临退出渠道不畅通的尴尬局面,在这个大背景下,基本上,中国式VC比较典型的套路是,早中晚三个阶段通吃,而且在创业板温度高涨的年代,一些VC机构参与PE项目的机会和次数也并不算少。但是,到了今天这种情况明显有所变化。

VC开始集体向前看。在近期的ChinaVenture中国投资年会上,多位知名VC都表示,今后VC要更关注早期项目,不能像过去几年一样追求“赚快钱”。

松禾资本董事长罗飞在近期的一次论坛上分析说,现阶段是早期投资的最好时机。“从1997年到2007年,我们在早期投资方面整个金额将近1亿,但失败的非常多……我们有个项目在2000年投资,在2007年上市。在2001、2002年我们适当做了早期的投资,有几个项目在2006、2007年上市。我们熬了十年,盼来了投资的春天。但是,2007年开始,又进入了PE抢项目的时代,我们看到越来越多的资金进入到中后期白热化的竞争”。

白热化竞争的直接结果是同质化。如何解决同质化?“我们还是拿起我们做早期投资的本质”。罗飞说。

与此同时,近一两年间,以雷军、薛蛮子、徐小平等等为代表的天使投资人在中国迅速崛起,“超级天使”现象惹人注目。

天使已经逐步向后走。近两年披露的多个TMT案子中,均有天使投资人的身影。

“从我们凯鹏华盈来说,我们主要做早期项目,我个人是做TMT的投资,我个人感受最深的可能是目前超级天使的崛起在中国,这跟美国是非常相像的,美国从前年到去年是一个非常明显的崛起。中国在这个节奏上完全没有落后于美国,几乎在同时,大概就差半年的时间,中国的超级天使就崛起了,从李开复的创新工程到雷军的一些投资机构,我们看到很多超级天使的崛起。”凯鹏华盈主管合伙人周炜在日前举行的2011年ChinaVenture中国投资年会上如是说。

周炜说,“我觉得这个对VC来说,尤其是早期VC的本质是投很早期的公司,从我们来说,我们并不是很关注公开市场和后期会怎么样,但是超级天使的崛起跟我们早期VC这个生态在未来几年怎么变化,这是非常有意思的现象,我们要去观察。但是我也看到超级天使机构化已经出现,像李开复的这个天使已经融到一个比较大的美元基金,据我所知,雷军的基金规模也不小了,所以他们也会变成早期VC,今后三年后,对科技机构的投资会是一个非常有意思的现象。”

VC开发 第12篇

近年来,将变电站由常规站改为综合自动化站成为一种趋势。综合自动化改造后的变电站对提高变电站的运行管理及技术水平、减少值班员抄表和记录、减少维护工作量等方面有显著的优越性。因此,为了解决变电站改造后运行人员对监控模式和操作模式转变存在的不适应问题,本文开发设计了变电站仿真培训系统。该变电站仿真培训系统的培训平台以哈东一次变电站现场实际情况和后台机监控系统为基础,集正常及异常操作培训、异常及事故处理培训功能为一体,培训平台采用模块化设计思想。

1 平台功能与结构设计

VC++是在Windows平台下构建32位应用程序的强大而又复杂的开发工具。MFC(Microsoft Foundation Class,微软基础类库)是微软为了简化程序员开发工作所开发的1套C++类的集合,是1套面向对象的函数库,可用于变电站培训软件程序的开发。

1.1 设计原则

在综合自动化变电站中,后台机是整个监控系统的核心和实现变电站综合自动化的关键。变电站所有功能信息均在变电站后台机进行汇总处理,并通过通讯在后台机上显示出来。因变电站后台机是运行人员的操作界面,所以,所有的遥测、遥信、遥控、遥调等监测和控制操作均在后台机上进行。而后台机一般采用设备生产厂家开发提供的系统软件,具备较为良好的用户界面与强大的功能,达到控制1个或多个运行中变电站的目的。因此,变电站仿真培训平台应以后台机为基础,模拟变电站真实的运行工况,营造与实际运行完全相同的操作界面。通过模拟再现才能在现实环境中熟练完成变电站的基本操作、事故紧急处理和恢复控制。因为变电站设备是按间隔布置的,如66kV场地、xx线间隔,操作设备时也是按间隔进行的;有些保护则是按母线配置的,如母差保护、失灵保护;一些公共信号,如接地、故障录波等。所以,设计是按线路、变压器、公共信号等单元进行设计。图1为变电站仿真培训平台整体设计示意图。

1.2功能与结构设计

开发变电站培训软件目的是为了增强运行人员综合素质,提高变电所值班人员的事故和异常情况处理能力和利用后台机进行运行操作的熟练能力。因此,根据需求分析,设计了3个基本模块,即事故异常仿真处理模块、后台机操作模块、扩展能力培养模块。

1.2.1 事故异常仿真处理模块

电气设备和电力系统在运行中常常会发生各种异常现象或事故。正确及时地处理各种异常运行或事故是变电站运行值班人员一项重要的基本职责。因此,对大量事故及异常处理的实例需进行仿真再现,以提高变电站运行人员对事故的处理能力。

1.2.2 后台机操作模块

倒闸操作是指通过操作隔离开关、断路器,以及挂接地线、拆接地线将电气设备从一种状态转换为另一种状态,使系统改变了运行方式。传统变电站电气操作必须到现场就地操作,此时因操作人员素质及技术水平上的差异和对设备的性能、结构、原理掌握和了解的程度不同,导致操作效果不同。综自改造后的变电站,传统的操作模式发生了根本性改变,运行值班人员在进行倒闸操作时无需去现场操作,而是远程遥控操作,这样不仅节省了大量人力,缩减了设备停送电时间,也能避免由人为因素造成的合闸不到位、对操作人员的安全威胁[1]。

1.2.3 扩展能力培养模块

由于许多值班人员对继电保护和二次回路知识的欠缺,所以在查找、分析异常事故方面受到很大的限制。为了使值班人员具备必要的保护和二次回路知识,需要对运行人员进行相关知识培训,使其对异常事故处理以及倒闸操作中一些保护和压板的投退有更深的认识[2]。

2平台功能的具体描述

2.1事故异常仿真处理模块

传统变电站值班员往往习惯于依靠中央信号及保护掉牌信号对故障作出判断,而光字信号和掉牌信号只能反映继电保护及自动装置动作的最终结果,难以反映其动作过程。综自改造后变电站的后台机系统故障信息复杂,值班员在某些情况下难以作出准确全面的分析和判断,有时甚至会造成误判断而影响电网调度人员的决策和指挥。后台机系统的事件记录的判读对事故处理过程中的分析判断是极其重要的,结合光字和保护掉牌信号能立体地反映1个故障的发展过程和保护的动作行为与结果,从而使现场值班人员能准确判断故障的性质与形态。因此,训练、提高运行人员判读故后台机系统的事件记录的能力是综自变电站培训工作的重要环节。

在综自改造后变电站实际运行中,当事故发生时,后台机灯窗和音响信号由常规的光字牌报警信号改为屏幕画面闪烁和文字提示及语音报警,与以前控制屏信号有了明显改变。所以,该模块要实现事故异常发生时,后台机灯窗、声音信号以及后台机报警信息的真实模拟,使值班人员能迅速判断故障类型,做出相应的处理,减少事故损失和影响。

变电站事故信息是该模块重要的基础数据,实现该模块功能之前需要对后台机灯窗信息的含义以及事故发生时后台机灯窗信息有深层次的认识。事故信息应能反应实际运行的各式各样的故障类型,在仿真系统中能实现随意组合各种故障跳闸行为的功能。为此,本模块设置了随机故障模块用以模拟各种系统事故故障和异常。

2.2后台机操作模块

尽管倒闸操作在变电站运行操作中时常出现,但在变电站的某次操作中却是不可重复的,因此很难在变电站通过反复的练习使值班人员具备良好的、标准的操作规范。综自改造后的后台机电气设备的倒闸操作, 原由断路器安装处或控制屏上进行的分合闸操作被屏幕上鼠标和键盘操作所替代,要求电气运行人员必须熟悉系统和操作流程,大力推行标准化、规范化操作。所以,该模块功能必须与实际运行操作界面环境完全相同,做到仿真培训的真正目的。

综自改造后的变电站电气操作为“现场就地+控制室手动+后台机遥控”模式,通过二次压板的投退实现。该模块中不同操作模式是本模块的开发重点。

2.3 扩展能力培养模块

在微机型二次设备的二次接线和继电保护方面,应该把这两个专业的知识结合学习,从不同的专业角度理解保护和二次回路之间的联系。因继电保护注重的是思维逻辑,可以用简单明了的文字准确地表达,但二次回路注重的是动作逻辑,仍用文字描述时可能会造成逻辑混乱,所以本模块关于二次回路部分采用动画的形式,生动逼真的描述动作逻辑。

3结论

通过上述该变电站仿真培训平台采用模块的设计思想和具备的功能以及实践验证,表明该仿真培训平台能够实现对运行人员运行技能、事故分析、处理能力、反事故演习等能力的培养,加快了运行人员对综合知识的掌握,解决了变电站转型难以接手的问题,达到了开发该平台预期目的。

摘要:针对哈东一次变电站综合自动化改造后运行人员在监控模式和操作模式方面存在不适应的问题,阐述了变电站仿真培训系统的设计原则、培训平台的功能,采用Visual C++开发环境,设计了事故异常仿真处理模块、后台机操作模块、扩展能力培养模块。实践证明,该软件培训系统实用性强,能够很好地实现正常操作、异常操作、异常处理及事故处理等培训功能,对哈东一次变运行维护工作具有实际意义。

关键词:电力系统,综自改造,仿真,变电站

参考文献

[1]钟锐.变电站综合自动化系统设计的若干问题探讨[J].黑龙江电力,2004,6(6):21-23.

VC开发范文

VC开发范文(精选12篇)VC开发 第1篇垃圾文件是操作系统使用过一段时间生成的冗余文件, 对操作系统来说是多余的, 一般来说, 每个一段时...
点击下载文档文档内容为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部