VC++快捷键大全

VC++快捷键大全
 
 

 f1: 帮助
ctrl+o   :open
ctrl+p   :print
ctrl+n   :new
ctrl+shift+f2 :清除所有书签
f2    :上一个书签
shift+f2  :上一个书签
alt+f2   :编辑书签
 
ctrl+f2  :添加/删除一个书签
f12    :goto definition
shift+f12  :goto reference
ctrl+'num+'  :displays the next symbol definition or reference
ctrl+'num-'  :displays the previous symbol definition or reference
ctrl+j/k  :寻找上一个/下一个预编译条件
ctrl+shift+j/k :寻找上一个/下一个预编译条件并将这一块选定
ctrl+end  :文档尾
ctrl+shift+end :选定从当前位置到文档尾
ctrl+home  :文档头
ctrl+shift+home :选定从当前位置到文档头
ctrl+b/alt+f9 :编辑断点
alt+f3/ctrl+f :查找
f3    :查找下一个
shift+f3  :查找上一个
ctrl+]/ctrl+e :寻找下一半括弧
ctrl+shift+] :寻找下一半括弧并选定括弧之间的部分(包括括弧)
ctrl+shift+e :寻找下一半括弧并选定括弧之间的部分(包括括弧)
f4    :寻找下一个错误/警告位置
shift+f4  :寻找上一个错误/警告位置
shift+home  :选定从当前位置到行首
shift+end  :选定从当前位置到行尾
ctrl+l   :剪切当前行
ctrl+shift+l :删除当前行
alt+shift+t  :交换当前行和上一行
ctrl+alt+t  :brings up the completion list box
shift+pagedown :选定从当前位置到下一页当前位置
shift+pageup :选定从当前位置到上一页当前位置
ctrl+shift+space:显示函数参数的tooltip
ctrl+z/alt+backspace :undo
ctrl+shift+z/ctrl+y :redo
f8    :当前位置变成选定区域的头/尾(再移动光标或者点鼠标就会选定)
ctrl+shift+f8 :当前位置变成矩形选定区域的头/尾(再移动光标或者点鼠标就会选定)
alt+f8   :自动格式重排
ctrl+g   :goto
ctlr+x/shift+del:cut
ctrl+c/ctrl+ins :copy
ctrl+v/shift+ins:paste
ctrl+u   :将选定区域转换成小写
ctrl+shift+u :将选定区域转换成大写
ctrl+f8   :当前行变成选定区域的头/尾(再移动上下光标或者点鼠标就会选定多行)
ctrl+shift+l :删除从当前位置到行尾
ctrl+shift+8 :将所有tab变成`或者还原
ctrl+t   :显示变量类型
ctrl+↑   :向上滚屏
ctrl+↓   :向下滚屏
ctrl+del  :删除当前单词的后半截(以光标为分割)
ctrl+backspace :删除当前单词的前半截(以光标为分割)
ctrl+←   :移到前一个单词
ctrl+→   :移到后一个单词
ctrl+shift+← :选定当前位置到前一个单词
ctrl+shift+→ :选定当前位置到后一个单词
ctrl+shift+t :将本单词和上一个单词互换
 

alt+0   :workspace window
alt+2   :output window
alt+3   :watch window
alt+4   :variables window
alt+5   :registers window
alt+6   :memory window
alt+7   :callstack window
alt+8   :disassembly window
ctrl+w   :classwizard
alt+enter  :属性
 
alt+f7   :project settings
 
f7    :build
ctrl+f7   :compile
ctrl+f5   :run
ctrl+break  :stops the build
f5    :go
ctrl+f10  :run to cursor
f11    :step into
alt+f10   :apply codes changes
ctrl+f9   :enable/disable a breakpoint
alt+f11   :将 memory window 切换到下一种显示模式
alt+shift+f11 :将 memory window 切换到上一种显示模式
ctrl+shift+f9 :去掉所有断点
ctrl+shift+f5 :restarts the program
ctrl+shift+f10 :将当前行设为下一条指令执行的行
alt+num*  :滚动到当前指令
shift+f11  :跳出当前函数
f9    :断点
f10    :step over
shift+f5  :停止 debugging
ctrl+f11  :switches between the source view and the disassembly view for this instruction
alt+f12   :queries on the selected object or current context
 
alt+f6   :toggles the docking feature for the window on/off
shift+esc  :隐藏窗口
 
 
 
ctrl+shift+g :?
ctrl+*   :打开string table
ctrl+space  :?
ctrl+f3   :向下查找下一个
ctrl+shift+f3 :查找上一个
ctrl+d   :查找
ctrl+i   :向下查找下一个
ctrl+shift+i :查找上一个
f6    :?activates the next pane
shift+f6  :?activates the previous pane
ctrl+m   :?detects duplicate mnemonics in the resource
alt +o : 头文件与cpp文件的交互显示
 


 
 


--------------------------------------------------------------------------------


推荐阅读
用C++ Builderw做Ftp服务器程序
  #include//requiredforatoi()#include"../winsock.h"//winsockheaderfile#define
prog_name"quickftpversion1"#definehost_name"nic.ddn.mil"//ftpserverhost#definepassword"pa
ssguest/r/n"//passwordforftpserverhost#definewinsock_version0x0101//programrequireswinsoc
kversion1.1#definedefault_protocol0//noprotocolspecified,usedefault#defineno_flags0//nosp
ecialflagsspecifiedcharszcommandbuffer[100];//bufferforftpcommandslpstrlpszfunctionname;/
/pointerforfunctionnamesuintgetreplycode(lpstrlpszserverr

Win32 SDK封闭实例
  win32sdk封闭实例——普通的windows程序(翻译)hqywork(翻译)关键字win32,sdk这个程序使用
类封装了windowsapi。controller--窗口过程和对象之间的桥梁。view--windows程序的输出封装。ca
nvas--封装了不同的设备描述符和事件,你可以去使用它们。model--工作者,你的程序的大脑。从不
处理窗口。注意:这是一个win32程序——它将运行在windows95及windowsnt下。注意:_set_new_handl
er是microsoft特定的。如果你使用的是其它的编译器,只要移去这行代码。依照当前的c++标准,n
ew操作符无论如何都应该抛弃。注意:旧的编译器在模板方面可能有问题。你可以直接调用get/setwin
dowlong来代替win[get/set]long模板。实例,调用以下的来代替controller*pctrl=wingetlong(hwnd
);你可以调用controller*pctrl=reinterpret_cast(::getwindowlong(hwnd,gwl_userd
ata

交叉编译sshd for IXP425 ARM Platform by MVL 3.0
下载openssh3.5p1http://www.openssh.org/在x86环境下./configure--sysconfdir=/etc/sshssh密钥
目录编辑makefile在ssh和sshd的编译选项上加-static参数,静态编译,动态编译出来总是找glic2.2
.4库。stripsshsshd/etc/ssh下放上sshd_config和密钥文件touch/var/log/lastlog运行sshdsshd-d-
4-ddebug模式-4只支持ipv4sshd_config#$openbsd:sshd_config,v1.342001/02/2410:37:26deraadtex
p$#thissshdwascompiledwithpath=/usr/bin:/bin:/usr/sbin:/sbin#thisisthesshdserversystem-wi
deconfigurationfile.seesshd(8)#formoreinformation.port22protocol2,1listenaddress0.0.0.0#l
istenaddress::hostkey

循序渐进学习Power Builder 6.0(15-4)
15.4链接对象和运输对象在pb中,为了实现nvo与代理对象的通讯,引入了两类新的对象,链接对象(
connectobject),运输对象(transportobject)。链接对象是运行在客户机上的对象。它驻留在客户
端应用程序中,用于与服务器通讯。transportobject是运行在服务器上的对象。它驻留在服务端应用
程序中,用于服务器与客户机的通讯。connection对象与我们所熟悉的事务对象(transobject)比较
类似。数据窗口为了存贮到数据库中的数据,我们首先得定义一个事务对象,让事务对象知道应该与哪
一个数据库相链接。类似地,我们先在客户端中建立一些代理,这些代理知道如何与服务端进行通讯。
这些通讯信息就存贮在connection对象中。和事务对象一样,为了区别与不同的服务端程序链接,con
nection对象拥有一些属性值。connection对象最有主要的三个属性值:驱动程序(driver)、位置(loc
ation)和应用程序(application)。这里所指的驱动程序是网络通信协议,一般为tcp/ip或namedpip
es。位置指的是服务器名,也就是nvo所在的计算机

C++ Builder实现网络连接检测程序
ping的实现过程很简单,该命令将引发ip层发送一个简单的ip包,一般是32字节。而目的方收到这个包
后,将源地址和目的地址变换一下,重新发送这个包即可,当然还要加一些超时机制。其实,我们也可
用c++buildernetmaster中的nmecho控件来实现网络连接检测功能。首先定义以下控件三个edit控件:
一个用于接收远程主机的ip地址或域名,一个用于接收用户设置的超时机制的时间,一个用于设置端口
号。两个richedit控件:一个用于给远程主机发送信息,一个用于接收来自远程主机的信息。两个che
ckbox控件:用于用户是否自己设定端口号。一个button控件:用于执行测试。一个statusbar控件:用
于显示应用程序的状态。程序实现代码如下:void__fastcalltform1::button1click(tobjectender){
//设置nmecho控件的标准tcp/ip属性nmecho1-〉host=edit1-〉text;nmecho1-〉timeout=strtoint(ed
it2-〉text);if(checkbox1-〉checked)nmecho1-〉port=st

调试方法和技巧
便于调试的代码风格:不用全局变量所有变量都要初始化,成员变量在构造函数中初始化尽量使用con
st详尽的注释vc++编译选项:总是使用/w4警告级别在调试版本里总是使用/gz编译选项,用来发现在r
elease版本中才有的错误没有警告的编译:保证在编译后没有任何警告,但是在消除警告前要进行仔细
检查调试方法:1、使用assert(原则:尽量简单)  assert只在debug下生效,release下不会被编
译。例子:char*strcpy(char*dest,char*source){assert(source!=0);assert(dest!=0);char*retur
nstring=dest;while((*dest++=*source++)!=‘/0’){;}returnreturnstring;}2、防御性的编程例子
:char*strcpy(char*dest,char*source){if(source==0){assert(false);reutrn0;}if(dest==0){ass
ert(false);return0;}char*returnstring=dest;while

PowerBuilder中实现数据窗口打印预览通用方法
  我们在文字处理过程中,常常在打印前要预览,以便控制打印效果,特别在数据打印中要有选择地
打印页面,更需要预览。powerbuilder提供了程序开发过程中的数据打印预览,下面介绍在程序应用中
实现打印预览通用方法。主窗口示意图如下:打印预览窗口预览尺寸自定义30%50%100%200%标尺一、上
述w_preview窗口中各控件说明:1.命令按钮控件(commandbutton)cb_1:用于数据窗口翻至首页。cb_2
:用于数据窗口向上翻页。cb_3:用于数据窗口向下翻页。cb_4:用于数据窗口翻至尾页。cb_5:用于关闭
打印预览数据窗口。2.复选框控件(checkbox)cbx_1:用于为预览数据窗口添加显示标尺。3.掩码编辑
器控件(editmask)em_1:用于显示和改变打印预览的相对比例。4.成组框控件(groupbox)gb_1:用于
显示一组控件的共同属性信息。5.收音机按钮控件(radiobutton)rb_1:用于用户自定义打印预览显
示比例。rb_2:用于用户设置打印预览显示比例为30%。rb_3:用于用户设置打印预览显示比例为50%。r
b_4:用于用户设置打印预览显示比例

面向服务的分析与设计原理(1)
最初的面向服务的体系结构(service-orientedarchitecture,soa)的实现项目的经验表明,诸如面
向对象的分析与设计(object-orientedanalysisanddesign,ooad)、企业体系结构(enterprisearc
hitecture,ea)框架和业务流程建模(businessprocessmodeling,bpm)这样的现有开发流程和表示
法仅仅涵盖了支持目前出现在soa中的体系结构模式所需的部分要求。在infoworld最近的访谈(请参见
参考资料)中,gradybooch宣称“像对问题的良好抽象和良好的分离这样的工程基础决不会过时”,不
过,他也指出“还是有现实的机会提升抽象的级别。过去的经验表明,必须将抽象的级别提升到公司处
理的业务领域,从而将整个企业it前景都纳入考虑的范畴。正如markcolan在文章“面向服务的体系结
构扩展web服务的前景,第1部分”中介绍的,soa是一种新兴的企业结构形式,可以用于设计下一代企
业应用程序。soa方法在有力地加强已经制定的良好通用软件体系结构原则(如信息隐藏、模块化和问
题分离)的同时,还增添了一些其他的主

如何实现VB中打开图像文件时的预览功能
  前一阵有人在vb专家门诊中提出一个问题,如何在vb中实现打开图像文件的预览,虽然给出了300
分的高分,回答着却寥寥无几。我在参照了delphi的源代码后在vb中实现了其部分图像预览功能,在中
文windows98se下测试通过。从msdn中可以知道调用文件打开通用对话框需调用api函数getopenfilena
me,原形如下:boolgetopenfilename(lpopenfilenamelpofn);//lpofn为初始化数据结构的地址其参数
lpofn指向类型为openfilename变量的地址,windows已经为我们实现自定义的文件打开对话框留了接口
。为了实现这个自定义的对话框,重点设置openfilename中的如下几个参数:flagsofn_enablehook使
由lpfnhook成员指定的钩子函数有效 ofn_enabletemplate表示由lptemplatename指定一个对话框模板
资源,这个资源存在于由hinstance指定的模块中ofn_explorer如果指定了上述两个标志则必须指定这
标志lpfnhook指向钩子函数的地址lptemplatename对话框

解读SVG(下)
对象的旋转  为在招贴画顶端产生颠倒的圆环,我们需要使用旋转变换。旋转有二种格式: 第一种
旋转方式:  语法格式:rotate(angle)   效果:以坐标原点(0,0)为中心、以度为单位将对
象旋转指定的角度。 第二种旋转方式:  语法格式:rotate(angle,cx,cy)   效果:以(cx,cy
)为中心将对象旋转angle指定的角度。  在许多情况下,使用第二种旋转方式更方便,尤其是一个对
象不是以原点为中心对称时,象一个单一的圆环就是这种情况。多个圆环的中心点是(60,0)。<!--lo
opsatbottom--><usexlink:href="#multiloop"transform="translate(20,100)"/><!--loopsatto
p--><usexlink:href="#multiloop"transform="translate(20,10)rotate(180,60,0)"/>     
图:解读svg7  需要注意的是,在旋转变换中使用的角度是以度为单位的,正的数值表明是顺时针方
向,0度表示正东,90度表示正南等  添加其他的图形和路径添加其他的

MiniSetup 的汉化趣谈
  minisetup,一个简易的安装文件制作工具,是用dephi编写的,解包后只有四个文件,一个主程序
minisetup.exe[必需汉化],一个minisetup.hdr[里面的ascii用生成exe文件执行时的提示信息,必
需汉化,是chinease兄告诉我的,举躬致谢。]第三个是demo.prj[一个演示的脚本文件,注释掉的,
成段的help,是让初学者参照制作安装脚本的,当然是e文,考虑了一下,还得译,便于大家使用],
最后一个readme.txt[唉,这个脚本要想学会如何使用高级用法,还就得看看它,mmd,难道又要译,
我晕...],再就没了,这个很麻烦呢。[我想]。  主程序的表单很简单,只有两个,哈,我真幸
福。上帝保佑我这个伪汉化人。用字串替换器提取ascii吧,一看字典文件,坏了,好多后面都是:号
,这可能绝大多数后面都是调用比如程序名、文件名什么的,这个汉化要小心,改00吧,有些后面的文
件名什么的就被挤掉了,不显示了;改20吧,空格、断行难免出现;如果这种串不是很多,我还可以在
译后的字串里加些"在""的"什么的把位置补够,可这么多,天哪!有没有简单的一点方法呢,我陷入了
思索之

中间件 ——信息系统综合集成的利器
信息系统综合集成的水平反映了一个企业、一个部门,乃至整个国家信息化建设的水平。制定和遵循相
关技术标准是一件重要的工作,但是不能照搬工业化的做法。面对复杂而多变的网络世界,中间件是信
息系统综合集成的利器。信息系统综合集成的水平反映了一个企业、一个部门,乃至整个国家信息化建
设的水平。制定和遵循相关技术标准是一件重要的工作,但是不能照搬工业化的做法。面对复杂而多变
的网络世界,中间件是信息系统综合集成的利器。一.新兴的基础软件中间件是继操作系统和数据库管
理系统之后随着网络的兴起和发展而新兴的一种基础软件,可以视为位于网络各结点操作系统之上.网
络应用系统之下的一层支撑软件。从软件工程的观点看,软件工程的任务说到底是通过工程化的方法,
努力缩短或简化从应用所面临的问题空间到计算机所能提供的解空间的映射过程,抑制或缓解因应用的
日益复杂化而可能引起的软件危机的进一步加剧。计算机裸机所能提供的解空间是非常简单的。为了让
计算机能提供更靠近问题空间的解空间,在裸机之上出现了各种各样的基础软件。基础软件的任务说到
底是把各类应用软件中带共性的或可复用的成分提取出来,向应用系统开发者提供更靠近问题空间的解
空间,从而

JAVA基础知识精华总结
  1、对象的初始化(1)非静态对象的初始化在创建对象时,对象所在类的所有数据成员会首先进行初
始化。基本类型:int型,初始化为0。如果为对象:这些对象会按顺序初始化。※在所有类成员初始化
完成之后,才调用本类的构造方法创建对象。构造方法的作用就是初始化。(2)静态对象的初始化程序
中主类的静态变量会在main方法执行前初始化。不仅第一次创建对象时,类中的所有静态变量都初始化
,并且第一次访问某类(注意此时未创建此类对象)的静态对象时,所有的静态变量也要按它们在类中
的顺序初始化。2、继承时,对象的初始化过程(1)主类的超类由高到低按顺序初始化静态成员,无论静
态成员是否为private。(2)主类静态成员的初始化。(3)主类的超类由高到低进行默认构造方法的调用
。注意,在调用每一个超类的默认构造方法前,先进行对此超类进行非静态对象的初始化。(4)主类非
静态成员的初始化。(5)调用主类的构造方法。3、关于构造方法(1)类可以没有构造方法,但如果有多
个构造方法,就应该要有默认的构造方法,否则在继承此类时,需要在子类中显式调用父类的某一个非
默认的构造方法了。(2)在一个构造方法中,只能调用一次其他的构

C++ GUI编程---使用SmartWin++
smartwin++是100%标准c++编写的轻量级gui库(http://smartwin.sourceforge.net),现在最新版是be
ta2.0,它的最初的目标是替代mfc和wtl。现在它可以通过winlib在linux下使用,据作者介绍,在以后
的版本里会支持linux下的开发。它是使用stl和boost编写,不过使用者不必自己安装boost库,只要下
载smartwin++,编译一下就可以使用了。smartwin++没有mfc那样的宏,你完全可以以c++的思维开编写
gui,对我们c++开发人员来说,很容易上手。更可贵的是它有一个可视化的gui设计工具sally(http:/
/sallyide.sourceforge.net),用它与vc配合,感觉很不错。smartwin++编译出来的程序很小,这是吸
引我的地方之一。它支持opengl以及opencv,对做图形图像的人可不错哦。下面是一些截图点击查看大
图最简单的程序//main.cpp#include"smartwin.h"usingnamespacesmartwin;classhellowinclass:pub
licwidge

JAVA代码编写的30条建议 选择自 chinaewolf 的 Blog
  1)类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包
含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如:thisisaclassnamethisismethodo
rfieldname若在定义中出现了常数初始化字符,则大写staticfinal基本类型标识符中的所有字母。这
样便可标志出它们属于编译期的常数。java包(package)属于一种特殊情况:它们全都是小写字母,
即便中间的单词亦是如此。对于域名扩展名称,如com,org,net或者edu等,全部都应小写(这也是j
ava1.1和java1.2的区别之一)。(2)为了常规用途而创建一个类时,请采取"经典形式",并包含对下述
元素的定义:equals()hashcode()tostring()clone()(implementcloneable)implementserializabl
e(3)对于自己创建的每一个类,都考虑置入一个main(),其中包含了用于测试那个类的代码。为使用一
个项目中的类,我们没必要删除测试代码。若进行了任何形式的改动,可方便地返回测试。这些代码也
可作为如何使用类的

VC实现卡拉OK字幕叠加
天极it资讯短信服务电脑小技巧资费:包月5元手机:介绍:细处着手,巧处用功。高手和菜鸟之间的
差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。
(首月免费)  一.gdi编程基础  字幕叠加,应当是属于图形、图像处理的范畴。在windows平台上
,图形、图像处理的方法当然首选gdi(graphicsdeviceinterface,图形设备接口)。gdi是什么?gd
i其实是一套api函数;它们功能丰富,使用起来简单、灵活。下面,我们首先来介绍一些gdi编程的基
础知识。  gdi函数有很多,我们大致可以把它们分成如下几类:  ·设备上下文(devicecontex
t,简称dc)函数,如getdc、createdc、deletedc等;  ·画线函数,如lineto、polyline、arc等
;  ·填充画图函数,如ellipse、fillrect、pie等;  ·画图属性函数,如setbkcolor、setbk
mode、settextcolor等;  ·文本、字体函数,如textout、gettextextentpoint32、getfontdata等


数据结构教程 第二十七课 实验六 二叉树实验
教学目的:掌握二叉树的链式存储结构教学重点:二叉树的链式存储实现方法教学难点:授课内容:生
成如下二叉树,并得出三种遍历结果:一、二叉树的链式存储结构表示typedefstructbitnode{telemt
ypedata;structbitnode*lchild,*rchild;}bitnode,*bitree;二、二叉树的链式存储算法实现createb
itree(&t,definition);insertchild(t,p,lr,c);三、二叉树的递归法遍历preordertraverse(t,visit
());inordertraverse(t,visit());postordertraverse(t,visit());示例源程序#include>#defineerror0;#defineok1;typedefintelemtype;typedefstructbinarytree{elemtypedata;stru
ctbinarytree*l;structbinarytree*r;}*bitree,binode;binode*new(){return((

编程必备 C#.NET 中的类型转换
  c#出来也有些日子了,最近由于编程的需要,对c#的类型转换做了一些研究,其内容涉及c#的装箱
/拆箱/别名、数值类型间相互转换、字符的ascii码和unicode码、数值字符串和数值之间的转换、字符
串和字符数组/字节数组之间的转换、各种数值类型和字节数组之间的转换、十六进制数输出以及日期
型数据的一些转换处理,在这里与大家分享——1.装箱、拆箱还是别名  许多c#.net的书上都有介绍
int->int32是一个装箱的过程,反之则是拆箱的过程。许多其它变量类型也是如此,如:short<->int
16,long<->int64等。对于一般的程序员来说,大可不必去了解这一过程,因为这些装箱和拆箱的动作
都是可以自动完成的,不需要写代码进行干预。但是我们需要记住这些类型之间的关系,所以,我们使
用“别名”来记忆它们之间的关系。c#是全面向对象的语言,比java的面向对象都还彻底——它把简单
数据类型通过默认的装箱动作封装成了类。int32、int16、int64等就是相应的类名,而那些我们熟悉
的、简单易记的名称,如int、short、long等,我们就可以把它称作是int32、int16、int64

用C++ Builder创建组合框
在c++builder下,其所带的combo控件当内容发生变化时将调用onchange的combo1change事件句柄。
这时事件句柄将向系统发送一条基于combo的cb—findstring消息,在消息中传递编辑字符串内容。该
消息的sendmessage返回值是下拉框中第一个匹配条目的index值,如果在下拉列表框中找到相匹配的条
目,comobo1change句柄将发送一条基于combo的cb—seteditsel消息,该消息的参数确定从插入点到字
符串结尾的部分将被选择。结果是被选中的部分是作为消息搜索结果显示在combo的text值中。具体实
现:1、在进入c++builder4.0以后,在窗体上画一个cmobobox1,在items中输入anlanticfaloncs、
china、japanese、amercia等字符串。2、创建combobox1的onchange句柄,并填入如下代码:void—f
astcalltform1::combobox1change(tobject*sender){stringvalue=combobox1-〉text;if(lastkey=
=′/b′||

关于异常的使用心得
版权所有:lythm文章来源:东日制作室  工欲善其事,必先利其器.在做一个项目时必定要先做好调
试除错的准备在面向过程编程的时代都是以检测返回的错误代码来判断错误,可是这种方法的缺点是如
果编写某一操作的时候可能出现的错误代码(比如说硬件操作)太多,那么最终用户将会陷入倒无穷无尽
的检测代码中,可能会是这个样子uinterr=functionxx(...);if(err==xxx)...if(err==xxx).........
省略100行只有这样程序才能在出现意外的时候有所相应和恢复,但是由于错误处理太庞大了最终用户很
可能这样if(functionxx()!=suceeded)exit(0);这样某些可能可以恢复的操作也无法幸免了,(比如说网
络连接超时,终止运行太过分了吧,只要弹出个对话框就行了)在面向对象编程的时候,不可否认,很多人
仍然还是这样排错的,其实各种面向对象的语言都提供了异常处理的手段(比如说objectpascal,c++,本
文以c++为例)下面是我的关于异常的一些使用心得对于各种用户来说,并不是每一种错误都是他关心的
,特别是小组开发的时候比如某一模块是关于文件操作的,那么

正则表达式语法
一个正则表达式就是由普通字符(例如字符a到z)以及特殊字符(称为元字符)组成的文字模式。该模
式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所
搜索的字符串进行匹配。这里有一些可能会遇到的正则表达式示例:jscriptvbscript匹配/^/[/t]*$/
"^/[/t]*$"匹配一个空白行。//d{2}-/d{5}/"/d{2}-/d{5}"验证一个id号码是否由一个2位数字,一个
连字符以及一个5位数字组成。/<(.*)>.*/"<(.*)>.*"匹配一个html标记。下表是元字符
及其在正则表达式上下文中的行为的一个完整列表:字符描述/将下一个字符标记为一个特殊字符、或
一个原义字符、或一个后向引用、或一个八进制转义符。例如,'n'匹配字符"n"。'/n'匹配一个换行符
。序列'//'匹配"/"而"/("则匹配"("。^匹配输入字符串的开始位置。如果设置了regexp对象的multil
ine属性,^也匹配'/n'或'/r'之后的位置。$匹配输入字符串的结束位置。如果设置了regexp对象的mu
ltiline属性,$也匹配'/n

如何将文件拷贝到剪贴板
怎样判断当前剪贴板中的内容为文件,如何将指定文件(不是文件内容)拷贝到剪贴板中。请问各位大
侠:怎样判断当前剪贴板中的内容为文件,如何将指定文件(不是文件内容)拷贝到剪贴板中。intge
tclipboardformatname(uintformat,//clipboardformattoretrievelptstrlpszformatname,//address
ofbufferfornameintcchmaxcount//lengthofnamestringincharacters);如果format=cf_hdrop就是文件
了handlesetclipboarddata(uintuformat,//clipboardformathandlehmem//datahandle);menxin的方案
是可行的.delphi定义了两个格式:cf_picture和cf_component.用户可以定义自己的格式.不过因为for
mats是word格式,所以系统中只能有16种格式.打开clipbrd单元,可以查到.cf_picture:=registerclip
boardformat('delphip

抽象工厂设计模式
publicclassrunabstractfactorypattern{publicstaticvoidmain(string[]arguments){system.out.p
rintln("examplefortheabstractfactorypattern");system.out.println();system.out.println("(t
akealookintherunpatterncode.noticethatyoucan");system.out.println("usetheaddressandphonen
umberclasseswhenwriting");system.out.println("almostallofthecode.thisallowsyoutowriteaver
y");system.out.println("genericframework,andpluginconcretefactories");system.out.println(
"andproductstospecializethebehaviorofyourcode)");system

深入Atlas系列之服务器端支持(下)
  在上一篇文章里,我们分析了一部分服务器端的代码。到现在为止,我们已经获得处理webservic
es方法请求的handler,马上就要开始processrequest了。  我们知道,处理webservices方法请求的
handler是resthandler,所以我们来看一下它的processhandler方法:  processrequest获得调用结
果代码分析:1publicvoidprocessrequest(httpcontextcontext)2{3//根据webservices的cache设置来
配置cache策略4this.initializecachepolicy(context);56try7{8stringcontenttype;910//从body的
json字符串中得到输入的参数。11idictionary<string,object>inputparams=this.getrawparams(c
ontext);1213//this._webservicemethoddata.ower.type即获得了即将调用的那个14//webservice类,
通过activa

在PB应用中实现声音与动画
  在设计应用程序过程中,恰当地应用电脑声音与动画技术,可以为用户提供更加直观、友好、引人注
目的操作界面。下面笔者介绍一下在powerbuild应用中实现声音与动画的一种简便方法:作为举例,创建
一个mdi风格的窗口w_audani。在这个窗口上放置一个含声音、动画两个带图标的菜单项的菜单m_auda
ni,一个图象框p_1。整个窗口的外观如下:制备声音和图象文件。本例中选用了一个adu.wav的声音文件
和四个ani1.bmp、ani2.bmp、ani3.bmp、ani4.bmp用于动画素材的分离图象文件。定义程序编制中要用
到的变量:(1)定义一个整型实例变量,用作图象计数integerpicturenub(2)定义一个外部函数,使在pow
erbuild编程中可以调用windows32-bitapi声音播放函数functionbooleansndplaysounda(stringsound
name,uintflags)&library"winmm.dll"为窗口w_audani编制事件处理程序。程序行中//后的为说明
文字。(1)在窗口的打开(open)事件下输入程序://声音菜单项

用VB编写Windows CGI应用程序
  用vb编写windowscgi应用程序一、windowscgi----通用网关接口cgi是服务器与应用程序之间的接
口,在编写html文件时可结合其他程序语言使客户通过浏览器将数据输入到文件里,经服务器处理后转
送给客户或记录在服务器的数据库中。任何一种程序设计语言写的程序,若可在服务器主机上运行并可
用cgi接口来传递数据,就可作为cgi应用程序,这种语言可被称为cgi程序语言或脚本语言(scriptin
glanguage);目前最受欢迎的cgi程序语言有:c/c++,shellscript,perl,和visualbasic,此外还有
fortran,tcl,applescript等。----cgi接口因平台不同而不同。windows平台的cgi称为windowscgi。美
国的bobdenny从需要实现cgi接口来处理windows应用方面的要求入手设计实现了windowscgi,开发出目
前在windows95和windowsnt平台上很受欢迎的http服务器:website;bobdenny用vb4.0写的windowscg
i接口程序名为cgi32.bas,是一个给用户在window

创建ActiveX控件
某些人不愿意学习新东西,特别是学习看起来很难很复杂时更是这样。对许多人说来,ocx就是这一类
的。和在dos环境下写设备驱动程序一样,写ole控件也属于这一类。现在microsoft出于某种考虑,已
把ocx的新版本的名称改为activex,许多人会为不想试一试这种技术而找到更多的借口。注activex控
件使用了ocx扩展名,就象他们设计用来代替的ole控件一样。因为你已经在阅读这一章了,所以我不能
不假定你至少已对activex控件背后的技术产生了较浓的兴趣。在本章中我们不会做出任何迷惑你们这
些小伙伴的事。事实上,我创建的两个程序设计例子(非常有用)都非常普通。我们来看看如何创建一
个新型按钮:on/off开关。选择这个例子的理由很容易理解,大多数人发现,与一些熟悉的事物打交道
,可以缓解学习新东西的压力。另外,这个特定的编码例子实现起来极简单,只需用少量时间就能弄明
白它是如何工作的。注释本章中的例子是用microsoftvisualc++6.0开发的,使用microsoftvisualc++
5.x版或4.x版都不会有太多麻烦。用borlandc++或比microsoftc++4.x还老的版本

Ruby程序快速入门之输入输出和标准库
输入输出  在所有的本系列文章中,在编写ruby代码时都使用了大量的ruby标准输出方法。其中,最
为常用的是print和puts方法,有关其使用细节不再赘述。  所有这些和其它处理输入和输出的方法
都定义于kernel模块中。这个kernel模块又被包含在object类中。因此,kernel的方法出现在每一个对
象中。在输出方面,kernel定义了print,printf,putc和io类和两个子类(file和basicsocket)-它们
允许读写文件和套接字。basicsocket是套接字库的一部分并且将在以后讨论它。包含了filetest模块
的file类,提供了许多方法来操作系统文件和目录。从kernel中使用的用于读写到标准输入/输出机制
的方法被进一步重用于file实例中的读写操作。下面是一个代码示例-它把一些名字写入一个新建的文
件中,然后再把这些名字读回到一个数组中。customers=%w[jimkevindavinandrew]outfile=file.new
("c://examples//test//customers.txt","w")customers.each{|cus

BC++ Builder 3.0中各种资源的利用
  在编写程序的过程中,经常要用到各种资源。比如说,想给自己的程序换个自己的图标,使用一些
活泼的光标来增加趣味性,播放一些声音和动画文件,或者使用别人写好的程序来实现某个功能。我们
往往希望将这些资源直接放到exe文件中以形成一个单独的可执行文件,这就存在一个如何在运行时访
问和使用这些资源的问题。在编译期间,这就要用到一种文件,以.rc结尾的资源定义文件。一:rc文
件  rc文件是个文本文件,它的格式很简单,按如下格式定义:  资源标识符资源类型资源的路径
以下的rc文件定义了一个声音资源,两个光标资源,三个图标资源和一个exe文件资源。src1.rc:s1wa
vwav1.wavc1cursorcursor1.curc2cursorcursor2.curi1iconicone1.icoi2iconicone2.icoi3iconicon
e3.icounzipexefilepkunzip.exe  你可以将写好的rc文件加到你的project(项目)中。你也可以手
工将其编译为供程序直接使用的二进制资源文件(.res文件)。在bcb3.0中,可以使用命令行:brcc3
2src1.rcsrc1.

用VC把TXT文件转化成HTM文件
  我们在做主页的时候,有时候需要把txt文件转化成htm文件。其实我们可以写个小程序,来实现把
txt文件变成htm文件。这里,我们使用vc来编写这个程序,首先新建一个对话框程序,然后在对话框中
加入2个文本框和1个按钮,通过classwizard来给2个文本框和2个变量建立联系。这2个变量都是cstri
ng类的,一个变量名为m_txt,指出要转化的txt文件的路径和文件名,另一个为m_htm,用来存放转化
后htm文件的路径和文件名。  然后加入button控件,在单击此控件的函数中加入的代码如下:upda
tedatatruecstdiofilesrcfilesrcfile.openm_txtcfilemoderead//通过cstdio
file类把要转换的txt文件的内容放到strtemp变量中cstringstrtempsrcfile.readstringstrtemp
srcfile.closecstdiofileffff.openm_htmcfilemodecreate|cfilemoderea
dwriteff.writestri
 

你可能感兴趣的:(技術,vc++,正则表达式,cgi,windows,服务器,microsoft)