读书人

为何在使用Byte(Pointer(Longint.当里

发布时间: 2013-07-08 14:13:00 作者: rapoo

为什么在使用Byte(Pointer(Longint..当里面的值上千时内存报错?
在运行Byte(Pointer(Longint(SpecBuf) + X * SPECWIDTH + SpecPos)^) := 255;时,当SPECWIDTH上1000时,报内存出错,为什么啊,超过内出地址了吗?怎么办啊!
[解决办法]
for X := 0 to SPECHEIGHT do
你把修改为: for X := 0 to SPECHEIGHT - 1 do 看看,
那个byte(Pointer(Longint(SpecBuf) + X * SPECWIDTH + SpecPos)^) := 255 不用修改的!

[解决办法]

引用:
// move marker onto next position
SPECWIDTH:=5000;
SpecPos := (SpecPos + 1) mod SPECWIDTH;
for X := 0 to SPECHEIGHT do
Word(Pointer(Longint(SpecBuf) + X * SPECWIDTH + SpecPos)^) := 255; //Byte


试下将for X := 0 to SPECHEIGHT do 改为 for X := 0 to SPECHEIGHT - 1 do

读书人网 >.NET

热点推荐