function FillBuffer(Buf:PChar;Count:Integer):Integer
begin
. . .
end;
// assume MAX_SIZE is a predefined constant
var
i: Integer;
buf: array[0..MAX_SIZE] of char;
S: string;
begin
i := FillBuffer(0, buf, SizeOf(buf)); // treats buf as a PChar
S := buf;
//statements
end;
buf是一个char数组,而FillBuffer中对应的位置是pchar类型,
i := FillBuffer(0, buf, SizeOf(buf)); // treats buf as a PChar
S := buf;我想知道这个buf是如何操作的,是怎么样放到fillbuffer中得到buf的值的。
begin
. . .
end;
// assume MAX_SIZE is a predefined constant
var
i: Integer;
buf: array[0..MAX_SIZE] of char;
S: string;
begin
i := FillBuffer(0, buf, SizeOf(buf)); // treats buf as a PChar
S := buf;
//statements
end;
buf是一个char数组,而FillBuffer中对应的位置是pchar类型,
i := FillBuffer(0, buf, SizeOf(buf)); // treats buf as a PChar
S := buf;我想知道这个buf是如何操作的,是怎么样放到fillbuffer中得到buf的值的。
解决方案 »
- delphi 如何取网页上的列表啊 并保存到记事本中
- 关于CREATRPROCESS函数隐藏新进程的问题
- 哎 牛人也太多了 ........................................................................................................
- 求教各位大大,savedialog控件的小问题
- 现今Delphi 主要应用是那方面如:COM,ActiveX,还是数据库
- QR 或 FR如何实现竖着打印数据库中的字段?
- 如何将普通坐标转为经纬度坐标
- csdn中没有delphi数据库高手了吗???
- 用dao操作access数据库,如何删除库中一个表里的某一字段?
- 以sock连接的C/S三层结构中,若C端死机或复位,将导致S端崩溃吗?应如何解决?
- 急:delpin问题,请帮下我啦
- 一个常量问题
2)function FillBuffer(Buf:PChar;Count:Integer):Integer
var
szBuf: PChar;
C: Char;
begin
szBuf := Buf;
while Count > 0 do
begin
C := Buf^;
ShowMessage(C);
Inc(szBuf);//szBuf++
Dec(Count);
end;
end;
我如何给buf赋值。
因此 buff: array [0..10] of Char;与pbuff : PChar;
pbuff := AllocMem(11);是一样的。至于拷贝操作,推荐 StrLCopy, 它可以指定拷贝到长度,避免了 StrCopy 拷贝时潜在的缓冲区溢出的问题。
同样字符串合并之类的函数 StrCat 也有带长度参数的版本 StrLCat,推荐用这类函数。
pbuff := AllocMem(11); // 是在堆上,需要自己手动 FreeMem(pbuff),但是大小上不像 栈上那么严格。