分享
 
 
 

VB也能访问内存

王朝vb·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

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

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有