转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
More Faster , More VB User         ★★★★

More Faster , More VB User

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1754 更新时间:2009/4/23 15:41:40

More Faster , More VB User

                                        ——VB位操作

为什么VB中不加入位操作的语法元素,我想主要是比尔的电脑比大多数人的电脑要快上几百倍。他可能觉得已经够了。

                                       —— Llib.Setag

 

这篇文章是用来解决VB中位操作方面的问题,我想。其实这篇文章我来写有点太显摆,因为其中很多代码不是我的原创,虽然其中很多技术虽然早已用过很多回,但是用到位操作上,特别是利用数组来进行高低位取字(字节)是我没有想到的,这是CSDN qiqi5521的功劳,感谢他的代码。

代码中主要用到了三种技术:

数组技术、指针技术、内嵌汇编技术

这三种技术实际上并不是我们所凭空想出来了,基本上是来源于《Hardcore VB》《Advanced Visual Basic》两书所提出来的方法。虽然这三种技术在一般的VB教课书上是不会提起的,但是由于它具有一定的实用性,在很多地方,特别是要求速度的地方可以加快代码不少的运行速度。关于具体的技术,我不太想在这篇文章中谈,如果有兴趣可以参考我的Blog: http://blog.csdn.net/BlueDog,里面有一个《VB深度下潜》系列,虽然没有写完,但这些技术会陆续提到。

代码、代码、还是代码,对于程序员而言,代码是最好的教课书。代码是我们的生存之道。然而在代码之前,还有几句要说的,在本模块中包括了几个版本的代码,显得有些乱,分别是一般速度、较高速度和最高速版。另外在代码中有两个函数是一定要记得使用,分别是

BitOperatorInitBitOperatorEnd,这两个函数是分别在位操作前后使用。本模块引用了 WinAPI ANSI Typlib。

来了,代码来了。

建立一个modBit的模块,将以下代码拷入。

Option Explicit

'''' 版本更新记录

''''

''''     2004-12-23  增加利用内存共享开发新的函数HiByteFastest ......

''''                 本版本新增函数利用CSDN上 qiqi5521的代码进行了改进

''''

 

Private Type BIT_WORD

   LoByte As Byte

   HiByte As Byte

End Type

 

Private Type BIT_DWORD

   LoWord As Integer

   HiWord As Integer

End Type

 

Private Type BIT_DWORD_BYTE

   LoByte As Byte

   SeByte As Byte

   ThByte As Byte

   HiByte As Byte

End Type

 

Private BitPower(31) As Long ''''0-31

Private BitRight32Code(23) As Byte

Private SHR32Addr As Long ''''汇编函数地址

 

Private BitLeft32Code(23) As Byte

Private SHL32Addr As Long ''''汇编函数地址

 

 

Private Type SafeArray1d ''''1维数组的 SafeArray 定义

    cDims As Integer ''''维数

    fFeatures As Integer ''''标志

    cbElements As Long ''''单个元素的字节数

    clocks As Long ''''锁定计数

    pvData As Long ''''指向数组元素的指针

    cElements As Long ''''维定义,该维的元素个数

    Lbound As Long ''''该维的下界

End Type

 

Const FADF_AUTO = &H1

Const FADF_FIXEDSIZE = &H10

 

Private Declare Function VarPtrArray Lib "msvbvm60.dll" Alias "VarPtr" (ptr() As Any) As Long

 

Private m_SA1DLong As SafeArray1d

Private m_SA1DInt As SafeArray1d

 

Private m_lSharedLong As Long ''''要被共享的长整形

Private m_aiIntsInLong() As Integer ''''要共享长整形地址空间的整形数组

 

Private m_lSharedInt As Integer

Private m_aiBytesInInt() As Byte

''''////////////////////////////////////////////////////////////////////////////////////////////////

''''位操作前初使化动作,主要是初使化,如果不进行初使化,将会出现不可预计错误

Public Sub BitOperatorInit()

   Dim i As Long

   Dim AsmCodeByte

   For i = 0 To 30

      BitPower(i) = 2 ^ i

   Next

   BitPower(31) = &H80000000

      

[1] [2] [3]  下一页


[VB.NET程序]GSM短信模块库函数,可以用VB,VC,调用简单实用  [办公软件]PowerPoint做交互课件之弃用VBA
[办公软件]VBA获取U盘、主板、CPU序列号和网卡MAC地址  [办公软件]VBA设置文件属性及加密源代码示例
[办公软件]VBA中初始化ADO连接的几种方法  [网络安全]“VB破坏者变种N”病毒摘要
[Web开发]ASP.NET上传文件到数据库VB版  [办公软件]在Excel中利用VBA实现多表单元格数据的读取与赋值…
[办公软件]使用Vba读取已关闭的Excel工作薄数据到当前工作表…  [办公软件]Excel编程基础之VBA文件操作详解
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台