热情软件屋

 

用DELPHI4.0如何调用GetVolumeInformation函数


编号:QA002115
建立日期: 1999年11月26日 最后修改日期:1999年11月26日
所属类别:

airjordan:
    操作系统: win95osr2
    编程工具: Delphi4.0
    问题: 版主你好!又要麻烦你了:)我在用DELPHI4.0调用GetVolumeInformation 这个函数时总是出错。想请教!
    var
     strDrive:LPCTSTR;
     Temp1,Temp2:LPTSTR;
     t1l,t2l:DWord;
     SerialNum,maximum,lpfilesys:LPDWORD;
     s1,s2:string[255];
    begin
     strdrive:='c:\';
     temp1:=@s1;
     temp2:=@s2;
     t1l:=sizeof(temp1);
     t2l:=sizeof(temp2);
     GetVolumeInformation(strDrive, Temp1,
     t1l, SerialNum, maximum, lpfilesys, Temp2, t2l)
    
    end;
    程序总是在MAXIMUM和LPFILESYS中出错!我已经把它们设成字的指针,为什么还是出错?多谢!

回答:

    在DELPHI中GetVolumeInformation 这个函数的定义有点怪。它的MAXIMUM和LPFILESYS都定义为DWORD型,采用传指方式,而不是采用LPDWORD型。正确的方法:
    var
     VolumeSerialNumber : DWORD;
     MaximumComponentLength : DWORD;
     FileSystemFlags : DWORD;
     SerialNumber : string;
     begin
     GetVolumeInformation('C:\',
     nil,
     0,
     @VolumeSerialNumber,
     MaximumComponentLength,
     FileSystemFlags,
     nil,
     0);
     end;

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio