选择显示字体大小

巧用win32 api函数增强vb位操作功能

  

摘要:visual basic 的位操作功能较弱,甚至连最常用的移位运算都不支持,因此在使用vb开发诸如数据加密、压缩、通信之类的程序时往往困难重重。 针对这一问题,本文详细地阐释了位操作的本质,并利用win32 api函数实现了整型变量的拆分、合并、移位等vb不支持的位操作功能。

关键词:visual basic、位操作、移位

本文相关代码(附件)

一 引言

  笔者在编程实践中发现,vb对位操作的支持仅限于and、or、xor几种位运算,远远不如其他的开发工具那样全面(如visual c++、c++builder、delphi等开发工具都提供了整形变量的移位、拆分、合并的运算),因此在使用vb编写诸如加密之类的通用数据处理程序时往往困难重重。为了使以后的开发工作不再陷入僵局,我开始寻求增强vb位操作功能的通用方法,以达到一劳永逸的效果。

  vb的数据类型不够丰富,整形数只包括byte、integer、long三种类型,分别对应c++中的 unsigned char、short 和 long 类型,而我们常用的二字节无符号整形unsigned short(也叫“字”、word)、四字节无符号整形unsigned long(也叫“双字”、dword)在vb中却没有被支持。 但好在无符号数和有符号数在二进制的层次上没有任何差别,不同之处仅在于编译器对变量的理解。在进行位操作时我们只关心变量的二进制位,因此vb中的integer类型可以当作word类型使用,long类型则对应dword。(此后文中提及的integer类型均指vb integer类型,long类型均指vb long类型,word 、dword类型则是不依赖于特定编译器的对二字节、四字节整形值的通用称呼)再来看位运算方面,可以看出vb不支持整型变量的左移、右移、拆分、合并等操作。

  经过上述的分析之后,已经确定了工作的可行性和工作目标,于是笔者决定开发一个通用模块来增强vb的位操作功能,这个模块是可重用的,只要把这个模块加入工程中,就可以象使用vb的内置函数一样透明的使用模块中的函数,非常方便。如果使用大量的可重用模块来开发程序,则开发周期短,代码可读性好,易于维护,不容易出错。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons