Help!!!一个把C语言转换成Delphi语言的问题(180分)

  • 主题发起人 主题发起人 water
  • 开始时间 开始时间
W

water

Unregistered / Unconfirmed
GUEST, unregistred user!
由于对C只是胡乱的啃过几部"砖头",所以对一些实作的地方不很明白,这几天由于在把一段用C写的算法转换成Object Pascal,结果写了一本被卡壳了,还请前辈大虾相救于水火之中,问题是这样的:
C Program:
DDSURFACEDESC ddsd;
BYTE *dest = (BYTE*)ddsd.lpSurface;
...
for (i=0
i < (BYTE)ddsd.dwHeight
y++)
{
...
dest=0xFF
//Question
...
}
前面的dest明明是声明成了一个BYTE的指针变量,为什么到了注有Question的那一行时,竟会变成了一个数组????? 维数多大????
转换成Object Pascal该如何写呢????????????????????

请点破迷津,我的头快炸了,Help!!
 
C语言中的BYTE是一个unsigned char 类型。
dest指向的是ddsd.lpSurface首位。
因此dest实际上是指向lpSurface+i的位置的字符。
var
p: PChar;
begin
p := PChar (ddsd.lpSurface);
...

(p+i)^ := $FF;

end;
 
这个问题180分,不值呀。。
 
c中的一维数组的名字同时也是其起始地址的指针,在c中,下面两方式是等价的:
BYTE *p;
*(p+i)=20;
p=20;
二者均将所指定单元的内容改成20
 
应该是因为类型转换的问题吧。
 
我接收volan和jjlei的意见了.不过真的,volan,很感激你。谢谢你的
指教.题外说一句,早就想上来了,可是总是连不上,只好拖到今天,感
觉很对不住这些热心的朋友,站长,您老若是看见了,请改善一下现状
吧,实在太慢了!!!!!!!!!!!!
 

Similar threads

回复
0
查看
1K
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部