GetLogicalDriveStrings
这个lpbuffer参数是一个pansichar型。你先开辟一个空间。
procedure TForm1.Button1Click(Sender: TObject);
var Buffer:PChar;
var i:integer;
var l:integer;
var Str:String;
begin
        GetMem(Buffer,200);
        i:=GetLogicalDriveStrings(199,Buffer);
        ShowMessage(inttostr(i));
        l:=0;
        While l<=i do
        begin
                if Ord(Buffer^)<>0 then
                begin
                        Str:=Str+Buffer^;
                end
                else
                begin
                        Memo1.Lines.Add(Str);
                        Str:='';
                end;
                l:=l+1;
                Buffer:=Buffer+1;
        end;
end;