知识大全 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相关参考