知识大全 VB也能访问内存

Posted

篇首语:既然选择远方,就注定风雨兼程。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 VB也能访问内存相关的知识,希望对你有一定的参考价值。

VB也能访问内存  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  有人说vb不能操作内存 效率低下 我不是太赞同 vb跟c比当然效率比较低下了 但是如果使用得当还是有不少的效率提高的

  在开发windows上的应用时(注意啊 不是驱动) 理论上来说 用vb可以做任何软件 因为vb本身没有的 可以使用api 而win api时可以实现windows上的任何应用功能的 当然这和使用者的功力有很大的关系 如果c/c++的功力很好 你甚至可以用vb实现内存拷贝的功能 因为long类型可以做指针

  最近在做界面 对vb有点研究 给个例子吧 比如 进制转换 进制

  用vb的一般用除法这么做

  public function o b(byval long nValue) as string

  dim nValueCopy as long

  dim nTmp as byte 商

  dim sReturn as string 返回值

  nValueCopy = nValue

   也有用nValue ^N 方式的 这里就不多说了

  do while nValueCopy >

  nTmp = nValueCopy /

  sReturn = cstr( nValueCopy nTmp / ) & sReturn  反向累计

  nValueCopy = nTmp

  loop

  o b = sReturn

  end function

  而用c比较熟的人一般按位去做

  public function o b(byref long nValue) as string

  dim nBit( to ) as byte       最小的单位是byte了 放掩码

  dim nByte( to ) as byte     分解nValue到字节的

  dim nTmp as byte

  dim pValue as long                指针

  dim sReturn as string             返回值

  dim i as byte j as byte

  nBit( ) =            

  nBit( ) =            

  nBit( ) =            

  nBit( ) =            

  nBit( ) =           

  nBit( ) =           

  nBit( ) =           

  nBit( ) =         

   取 nValue 的地址

  pValue = VarPtr( nValue )

   win api 将nValue的 个字节分别复制到nByte中 byref 就相当于指针

  CopyMemory( nByte( ) byref pValue )

  for i = to       低字节在前

  for j = to     高位开始

   方法一 减法

  nTmp =

  if nByte(i) > nBit(j) then

  nByte = nByte(i) nBit(j)

  nTmp =            这一位二进制是

  end if

  sReturn = sReturn & cstr(nTmp)

   方法二 按位与 效率更高

  nTmp =

  if ( not ( nByte(i) imp nBit(j) ) ) = nBit(j) then

   我没有找到vb按位与的函数 只有按位 同与 (不记得是不是)的imp

  nTmp =

  end if

  sReturn = sReturn & cstr(nTmp)

  next j i

  o b = sReturn

  end function

cha138/Article/program/ASP/201311/21655

相关参考