X
xihahi
Unregistered / Unconfirmed
GUEST, unregistred user!
我有以下程序段:
var
s:string;
s:=copy(windir,0,3);
if GetVolumeInformation(s,Buffer, SizeOf(Buffer), SerialNum, a, b, nil, 0) then
wybz:=IntToStr(SerialNum^);
编译时提示 s 是string 类型,与pchar不匹配,
但把程序改成如下之后,可以运行,得到正确的结果:
s:=copy(windir,0,3);
if GetVolumeInformation('c:/',Buffer, SizeOf(Buffer), SerialNum, a, b, nil, 0) then
wybz:=IntToStr(SerialNum^);
'c:/' 不一样是字符串吗?为什么'c:/' 可以运行而 s 就会编译错误
var
s:string;
s:=copy(windir,0,3);
if GetVolumeInformation(s,Buffer, SizeOf(Buffer), SerialNum, a, b, nil, 0) then
wybz:=IntToStr(SerialNum^);
编译时提示 s 是string 类型,与pchar不匹配,
但把程序改成如下之后,可以运行,得到正确的结果:
s:=copy(windir,0,3);
if GetVolumeInformation('c:/',Buffer, SizeOf(Buffer), SerialNum, a, b, nil, 0) then
wybz:=IntToStr(SerialNum^);
'c:/' 不一样是字符串吗?为什么'c:/' 可以运行而 s 就会编译错误