有人说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
&