VB也能访问内存 (转)

VB也能访问内存 (转)[@more@]

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

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

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

    用vb的一般用除法这么做:
public function o2b(byval long nValue) as string
  dim nValueCopy as long
  dim nTmp as byte '商
 dim sReturn as string '返回值
 nValueCopy = nValue

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

  do while nValueCopy > 0
  nTmp = nValueCopy / 2 
    sReturn = cstr( nValueCopy - nTmp / 2 ) & sReturn  '反向累计
  nValueCopy = nTmp
    loop
 
  o2b = sReturn


end function

  而用c比较熟的人一般按位去做:
public function o2b(byref long nValue) as string
    dim nBit( 0 to 7 ) as byte  ' 最小的单位是byte了,放掩码
  dim nByte( 1 to 4 ) as byte ' 分解nValue到字节的
  dim nTmp as byte
  dim pValue as long ' 指针
  dim sReturn as string  ' 返回值
 dim i as byte, j as byte

    nBit(0) = 1  '00000001 
  nBit(1) = 2  '00000010
    nBit(2) = 4  '00000100
    nBit(3) = 8  '00001000
    nBit(4) = 16  '00010000
    nBit(5) = 32  '00100000
    nBit(6) = 64  '01000000
    nBit(7) = 128 '10000000

  ' 取 nValue 的地址
  pValue = VARPtr( nValue )

  ' win32 api, 将nValue的4个字节分别复制到nByte中,byref 就相当于指针
  CopyMemory( nByte(1), byref pValue, 4 )

    for i = 4 to 1  '低字节在前
    for j = 7 to 0  '高位开始
    ' 方法一, 减法
  nTmp = 0
    if nByte(i) > nBit(j) then
      nByte = nByte(i) - nBit(j)
      nTmp = 1  ' 这一位二进制是1
      end if
      sReturn = sReturn & cstr(nTmp)

 ' 方法二,按位与 效率更高
  nTmp = 1
    if ( not ( nByte(i) imp nBit(j) ) ) = nBit(j) then
    ' 我没有找到vb按位与的函数,只有按位"同与"(不记得是不是)的imp
 nTmp = 0
  end if
    sReturn = sReturn & cstr(nTmp)
 next j, i

  o2b = sReturn

end function

网吧里,没有环境,随手写写,有错误请见谅,主要是思路.


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-991744/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752043/viewspace-991744/

### CentOS 镜像中 README 文件的作用 README 文件通常作为文档的一部分,在操作系统或软件包的分发过程中起到指导和说明的作用。对于 CentOS 的镜像而言,其 README 文件的主要意义在于提供关于该版本的操作系统的关键信息以及安装指南。 #### 1. 提供版本信息 README 文件会明确指出当前镜像是哪个具体版本的 CentOS,例如 `CentOS Linux release 7.9.2009 (Core)`[^1]。这有助于用户确认所下载的是正确的发行版,并了解与其兼容的硬件和软件环境。 #### 2. 描述安装前准备事项 在实际部署之前,用户可能需要完成一些必要的准备工作,比如安装工具 Git 或者其他依赖项。这些内容往往会在 README 中有所提及,帮助新手快速上手。 #### 3. 解决常见问题 针对可能出现的问题,如文件上传验证通过后的反馈机制——返回文件名表示成功[^2];或者如何正确配置服务端口映射等复杂场景下的解决方案也可能被记录下来以便查阅。 #### 4. 列举第三方库源地址 有时为了扩展功能,官方文档还会给出获取额外资源的方法论实例:“`wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz`” 就是用来示范怎样从外部站点拉取所需组件的例子之一[^3]。 #### 5. 展示高级设置教程 除了基本操作外,更深入的技术细节也会包含其中,例如为了让 NVM 成为全局变量而修改特定路径下的脚本文件 `/etc/profile.d/nvm.sh` [^4] ,或者是利用 FTP 协议传输大容量数据时推荐采用 Binary Mode 来保持文件完整性[^5]。 综上所述,README 不仅是一个简单的介绍性文本,更是连接开发者与最终用户的桥梁,它承载着丰富的背景资料和技术支持,使得整个安装过程更加顺畅高效。 ```bash # 示例命令展示如何查看本地是否存在类似的 readme 文档 ls /path/to/your/downloaded/image/*.txt | grep -i "readme" cat /path/to/found/readme.txt ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值