안녕하세요 꾸벅~!
procedure TForm1.Button1Click(Sender: TObject);
var
VolumeName,
FileSystemName : array [0..MAX_PATH-1] of Char;
VolumeSerialNo : DWord;
MaxComponentLength,
FileSystemFlags : Integer;
begin
GetVolumeInformation('C:',VolumeName,MAX_PATH,@VolumeSerialNo,
MaxComponentLength,FileSystemFlags,
FileSystemName,MAX_PATH);
Memo1.Lines.Add('VName = '+VolumeName);
Memo1.Lines.Add('SerialNo = $'+IntToHex(VolumeSerialNo,8));
Memo1.Lines.Add('CompLen = '+IntToStr(MaxComponentLength));
Memo1.Lines.Add('Flags = $'+IntToHex(FileSystemFlags,4));
Memo1.Lines.Add('FSName = '+FileSystemName);
end;
밑에 어떤분께서 올리신거 실습 해봤는데 GetVolumeInformation에서
[Error] Unit1.pas(36): Types of actual and formal var parameters must be identical 이런 에러가 생기네요 왜그럴까? ㅡ.ㅡ;; 36라인은 GetVolumeInformation라인 바로 다음 라인입니다. 답변 부탁드립니다.
> 안녕하세요 꾸벅~!
> procedure TForm1.Button1Click(Sender: TObject);
> var
> VolumeName,
> FileSystemName : array [0..MAX_PATH-1] of Char;
> VolumeSerialNo : DWord;
> MaxComponentLength,
> FileSystemFlags : Integer;
> begin
> GetVolumeInformation('C:',VolumeName,MAX_PATH,@VolumeSerialNo,
> MaxComponentLength,FileSystemFlags,
> FileSystemName,MAX_PATH);
> Memo1.Lines.Add('VName = '+VolumeName);
> Memo1.Lines.Add('SerialNo = $'+IntToHex(VolumeSerialNo,8));
> Memo1.Lines.Add('CompLen = '+IntToStr(MaxComponentLength));
> Memo1.Lines.Add('Flags = $'+IntToHex(FileSystemFlags,4));
> Memo1.Lines.Add('FSName = '+FileSystemName);
> end;
> 밑에 어떤분께서 올리신거 실습 해봤는데 GetVolumeInformation에서
> [Error] Unit1.pas(36): Types of actual and formal var parameters must be identical 이런 에러가 생기네요 왜그럴까? ㅡ.ㅡ;; 36라인은 GetVolumeInformation라인 바로 다음 라인입니다. 답변 부탁드립니다.
================================================================
MaxComponentLength, FileSystemFlags 변수의 데이터형을 Integer형인 아닌 DWord형으로....수정하시면. 됩니다.
var
VolumeName,
FileSystemName : array [0..MAX_PATH-1] of Char;
VolumeSerialNo : DWord;
MaxComponentLength,
FileSystemFlags : Integer; <--- DWord;
이부분에서....
MaxComponentLength,
FileSystemFlags : Integer; 을 integer형이 아닌 DWord형으로 수정해 주시면 됩니다.
--->
procedure TForm1.Button1Click(Sender: TObject);
var
VolumeName,
FileSystemName : array [0..MAX_PATH-1] of Char;
VolumeSerialNo : DWord;
MaxComponentLength,
FileSystemFlags : DWord;
begin
GetVolumeInformation('C:',VolumeName,MAX_PATH,@VolumeSerialNo,
MaxComponentLength,FileSystemFlags,
FileSystemName,MAX_PATH);
Memo1.Lines.Add('VName = '+VolumeName);
Memo1.Lines.Add('SerialNo = $'+IntToHex(VolumeSerialNo,8));
Memo1.Lines.Add('CompLen = '+IntToStr(MaxComponentLength));
Memo1.Lines.Add('Flags = $'+IntToHex(FileSystemFlags,4));
Memo1.Lines.Add('FSName = '+FileSystemName);
end;